擠進(jìn)R語言的第二天—數(shù)據(jù)結(jié)構(gòu)

學(xué)習(xí)了R、RStudio以及R包的安裝,自然要學(xué)習(xí)開門第一課——創(chuàng)建數(shù)據(jù)(以下文字摘自R語言實戰(zhàn)(第二版))。R語言有許多用于儲存的對象類型,包括標(biāo)量、向量、矩陣、數(shù)組、數(shù)據(jù)庫和列表。

  1. 向量(vector)
    向量是用于存儲數(shù)值型、字符型或邏輯型數(shù)據(jù)的一組一維數(shù)組。執(zhí)行組合功能的函數(shù)c()用來創(chuàng)建向量。例如:
    a <- c(1,2,3,4); b<- c("one","two","three"); c<-("TRUE", "FALSE","TRUE","TRUE"
    )
    其中a屬于數(shù)字型向量,b屬字符型向量,c屬于邏輯型向量。單個向量中的數(shù)據(jù)必須用于相同的類型或模式。

  2. 矩陣(matrix)
    矩陣是一個二維數(shù)組,只是每個元素都擁有相同的模式。通過matrix()創(chuàng)建矩陣。
    mymatrix <- matrix(vector, nrow= number_of_rows, ncol= number_of_columns, byrow=logical _value, dimnames=list(char_vector_rownames, char_vector_colnames))
    解釋一下,mymatrix相當(dāng)于命名,賦予生命名字都OK,第一個是vector向量,包含矩陣的元素,nrow和ncol是行和列的數(shù)字,byrow表明矩陣是按照行填充還是列填充,默認(rèn)是FLASE即,按列填充,若敲代碼時,賦予byrow=TRUE,則按行填充,dimnames即對行或列進(jìn)行命名。


    代碼清單2-2(摘自R語言實戰(zhàn)(第二版))

創(chuàng)建了1個2*2的矩陣,向量為cells,行名為為rnames,列名為cnames,第一個按行填充,第二個按列填充

  1. 數(shù)組(array)
    數(shù)組與矩陣類似,但是唯獨可大于2,通過array()創(chuàng)建數(shù)組。
    myarray<-array(vector,dimensions,dinames)
    其中vector包含數(shù)組中的數(shù)據(jù),dimensions是一個數(shù)值型向量,給出各個維度下標(biāo)的最大值,dinames是可選的,為各個維度名稱的標(biāo)簽的列表。
代碼清單2-3(摘自R語言實戰(zhàn)(第二版)

創(chuàng)建了一個234的數(shù)值型數(shù)組,其中各維度名稱為dim1, dim2, dim3。而z(1,2,3)為第一行第二個第三組數(shù)據(jù),值為15。

  1. 數(shù)據(jù)框(data.frame)
    數(shù)據(jù)框?qū)儆谧畛L幚淼臄?shù)據(jù)結(jié)構(gòu)與SAS,SPSS和Stata中看到的數(shù)據(jù)集類似,通過data.frame()創(chuàng)建數(shù)據(jù)框。
    mydata<-data.frame(col1,col2,col3,...)
    其中的列向量col1,col2,col3等可成為任何類型。每一列的名稱可由函數(shù)names來指定。


    代碼清單2-4(摘自R語言實戰(zhàn)(第二版)

每一列數(shù)據(jù)模式必須唯一,但是可將多個模式的不同列放到一起組成數(shù)據(jù)框。

  1. 因子(factor)
    類別(名義型)變量和有序類別(有序型)變量在R語言中稱為因子,通過factor()創(chuàng)建因子。函數(shù)factor是以一個整數(shù)向量的形式存儲類別之,整數(shù)的取值范圍是[1...k](其中k是名義型變量中唯一值的個數(shù)),同時一個由字符串組成的內(nèi)部向量將映射到這些整數(shù)上。


    代碼清單2-6(摘自R語言實戰(zhàn)(第二版)

建立了4個向量,將向量diabetes指定為普通因子,將status指定為有序型因子,將整個數(shù)據(jù)合并成一個數(shù)據(jù)框。函數(shù)str()提供對象的信息,顯示patientID和age為數(shù)字型向量,diabetes為普通因子,status為有序因子。函數(shù)summary()顯示對象的統(tǒng)計概要,并會區(qū)別對待各個變量,如圖顯示,對patientID和age計算最小值,1/4,中間值,平均值,3/4以及最大值。對待diabetes和status顯示出頻數(shù)值。
注:1. 對于字符型向量,因子的水平默認(rèn)依字母順序創(chuàng)建,若想按照自己的邏輯,可通過選項levels來覆蓋默認(rèn)排序,如:status<-factor(status, order=TRUE,levels=c("Poor”, "Improved", "Excellent"))
2.對于數(shù)字型向量可用levels和labels參數(shù)來編碼成因子。如男性編碼成1,女性編碼成2。
sex<-factor(sex, levels = c(1,2), labels = c("Male", "Female"))

  1. 列表(list)
    列表是R的數(shù)據(jù)類型中最為復(fù)雜的一種,一般來說是一些對象(或成分)的有序集合。類別允許你整合若干對象到單個對象名下,通過list()創(chuàng)建列表。


    代碼清單2-7(摘自R語言實戰(zhàn)(第二版)

創(chuàng)建了1個字符串,數(shù)字型向量,矩陣和字符型向量,將4個保存為1個列表。可以通過[[]]輸出想要的成分,如mylist[[2]]或mylist[["ages"]]。

今天有分享這么多,不過在編寫的時候發(fā)現(xiàn)簡書的圖片上傳一直是!,顯示失敗,大家可以切換成預(yù)覽模式就可看到自己插入圖片的狀態(tài),不知道發(fā)布的時候會不會一致。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容