熱線電話:13121318867

登錄
首頁精彩閱讀R語言之創建數據集
R語言之創建數據集
2018-03-16
收藏

R語言之創建數據集

數據集通常是由數據構成的一個矩形數組,行表示觀測,列表示變量。

R中有許多用于存儲數據的結構,包括標量、向量、數組、數據框和列表。
在R中,對象(object)是指可以賦值給變量的任何事物,包括常量、數據結構、函數、甚至是圖形。因子(factor)是名義型變量或有序型變量,在R中被特殊地存儲和處理。

R中的數據結構:

1.1向量

     向量是用于存儲數值型、字符型或邏輯型數據的一維數組。創建向量使用函數c(),如下例所示:
     數值型向量:a<-c(1,2,5,3,6,-2,4)
     字符型向量:b<-c("one","two","three")
     邏輯型向量:c<-c(TRUE,TRUE,TRUE,FALSE,TRUE)
     注:單個向量中的數據必須擁有相同的類型或模式。
     標量是只含一個元素的向量,例如f<-3、g<-"US"和h<-TRUE。它們用于保存常量。
     訪問向量中的元素,可在方括號中給定元素所處位置的數值,如:a[c(2,4)]用于訪問向量a中的第二個和第四個元        素。
1.2矩陣
     矩陣是一個二維數組,只是每個元素都擁有相同的模式(數值型、字符型或邏輯型),可以通過matrix創建矩陣
      一般使用格式為:
      mymatrix<-matrix(vector,nrow=number_of_rows,ncol=number_of_columns,byrow=logical_value,dimnames=list(
      char_vector_rownames,char_vector_colnames)) ,其中vector包含了矩陣的元素,nrow和ncol用以指定
      行和列的維數,dimnames包含了可選的以字符型向量表示的行名和列名。選項byrow則表明矩陣應當按行
      填充(byrow=TRUE)還是按列填充(byrow=FALSE),默認情況下按列填充。代碼演示如下:
[plain] view plain copy
    > cells<-c(1,23,56,485)  
    > rnames<-c("R1","R2")  
    > cnames<-c("c1","c2")  

[plain] view plain copy

    <pre name="code" class="html">> mymatrix<-matrix(cells ,nrow=2,ncol=2,byrow=TRUE,dimnames=list(rnames,cnames))  
    > mymatrix  
       c1  c2  
    R1  1  23  
    R2 56 485 
1.3數組
數組與矩陣類似,但是維數可以大于2。數組可通過array函數創建,形式如下:
myarray<-array(vector,dimensions,dimnames),其中vector包含了數組中的數據,dimensions是一個數值型向量,給出了各個維度下標的最大值,而dimnames是可選的、各維度名稱標簽的列表。代碼如下:
[html] view plain copy

    > dim<-c("A1","A2")  
    > dim1<-c("A1","A2")  
    > dim2<-c("B1","B2","B3")  
    > dim3<-c("C1","C2","C3","C4")  
    > z<-array(1:24,c(2,3,4),dimnames=list(dim1,dim2,dim3))  
    > z  
    , , C1  
      
       B1 B2 B3  
    A1  1  3  5  
    A2  2  4  6  
      
    , , C2  
      
       B1 B2 B3  
    A1  7  9 11  
    A2  8 10 12  
      
    , , C3  
      
       B1 B2 B3  
    A1 13 15 17  
    A2 14 16 18  
      
    , , C4  
      
       B1 B2 B3  
    A1 19 21 23  
    A2 20 22 24 
1.4數據框
     數據框中不同的列可以包含不同模式(數值型、字符型等)的數據,是R中最常處理的數據結構。數據框可以通過函數data.frame()創建:mydata<-data.frame(col1,col2,col3,...),其中的列向量col1,col2,col3,...可為任何類型(如字符型、數值型或邏輯型)。每一列的名稱可由函數names指定。代碼如下:
[html] view plain copy

    > age<-c(25,34,28,53)  
    > patientID<-c(1,2,3,4)  
    > diabetes<-c("Type1","Type2","Type1","Type1")  
    > status<-c("Poor","Improved","Excellent","Poor")  
    > patientdata<-data.frame(patientID,age,diabetes,status)  
    > patientdata  
      patientID age diabetes    status  
    1         1  25    Type1      Poor  
    2         2  34    Type2  Improved  
    3         3  28    Type1 Excellent  
    4         4  53    Type1      Poor  
    > patientdata$age  
    [1] 25 34 28 53  
    <pre name="code" class="html">> table(patientdata$diabetes,patientdata$status)  
             
            Excellent Improved Poor  
      Type1         1        0    2  
      Type2         0        1    0 
    $被用來選取一個給定數據框中的某個特定變量,上面table(patientdata$diabetes,patientdata$status)生成了       diabetes和status的列聯表。
    函數attach()可將數據框添加到R的搜索路徑中。
    函數detach()將數據框從搜素路徑中移除。
    相對于attach。多數的R書籍更推薦使用函數with()。
1.5因子
     變量可歸結為名義型、有序型或連續型變量。類別(名義型)變量和有序類別(有序型)變量在R中稱為因子。因子在R中非常重要,因為它決定了數據的分析方式以及如何進行視覺呈現。
     函數factor()以一個整數向量的形式存儲類別值,整數的取值范圍是[1...k](其中k是名義變量中唯一值得個數),同時一個由字符串(原始值)組成的內部向量將映射到這些整數上。
名義型eg:假設有向量:diabetes<-c("Type1","Type2","Type1","Type1")
        語句diabetes<-factor(diabetes)將此向量存儲為(1,2,1,1).
有序型eg:   對于給定變量status<-c("Poor","Improved","Excellent","Poor")
        語句status<-factor(status,ordered=TRUE)會將向量編碼為(3,2,1,3)。
1.6列表(list)
     列表是R的數據類型中最為復雜的一種。列表就是一些對象的(或成分,component)的有序集合。列表允許你整合若干(可能無關)的對象到單個對象名下。例如,某個列表中可能是若干向量、矩陣、數據框,甚至是其他列表的組合??梢允褂煤瘮祃ist()創建列表:
      mylist<-list(object1,object2,...)
    注:列表成為了R中的重要數據結構。
           1.列表允許以一種簡單的方式組織和重新調用不相干的信息;
           2.許多R函數的運行結果都是以列表的形式返回的。

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢