R語言--六種數據類型


向量

1.1 定義向量

向量使用c來賦值,向量中不能混合不同類型的數據

x<-c(2,3,7,6,8)  數值型num

y<-("one","two","three")  字符型chr

z<-c(TRUE,TRUE,FALSE)  邏輯型logi

查看變量的類型:class(x)

 

1.2 訪問向量

訪問中的元素,使用中括號(R語言區分大小寫),R語言索引從1開始

訪問第二個元素:x[2]  

訪問第1和第3個元素:x[c(1,3)]  

訪問第1都第3的元素:x[c(1:3)] 或者x[1:3]

 

矩陣

2.1 定義矩陣

矩陣是二維的,矩陣中的數據類型不能混合

矩陣創建使用matrx():

x<-matrix(1:20,nrow=5,ncol=4)

解釋 : 1:20定義了矩陣中的數據是1到20,規定了5行4列,默認情況下矩陣按列填充

添加一個字段byrow=T,是否按行填充,設置為TRUE或者T :

x1<-matrix(1:20,nrow=5,ncol=4,byrow=T)

 

2.2 矩陣的索引

獲取第1行:x1[1,]

 

獲取第3列:x1[,3]

獲取第3行第4列:x1[3,4]

 

獲取第3行第12列:x1[3,c(1,2)]  

 

 

數組

3.1 定義數組

數組可以是二維,三維,使用array創建,定義2行3列的4張表

定義變量:

d1<-c("m1","m2")

d2<-c("n2","n2","n3")

d3<-c("p1","p2","p3","p4")

使用array組合成數組:

x2<-array(1:24,c(2,3,4),dimnames = list(d1,d2,d3))

解釋: 1:24用來個創建的數組填充數據,c(2,3,4)用來確定數組的維度,dimnames用來給創建的數組取名字(以下是部分截圖)

 

數據框

 4.1 定義數據框

數據框可以混合不同類型的數據

首先定義幾個變量:

patientID<-c(1,2,3,4)                         

age<-c(26,30,27,48)

diabetes<-c("type1","type2","type1","type2")

status<-c("poor","improved","excellent","poor")

使用data.frame構成數據框:

pt<-data.frame(patientID,age,diabetes,status)

 

4.2 訪問數據框

訪問數據框用中括號,訪問第1和第2列:p1<-pt[1:2]

 

使用列名,訪問某列:p2<-pt[c("age","status")]

 

4.3頻數表和交叉表

頻數分析:table(pt$status)

 

交叉分析:table(pt$diabetes,pt$status)

 

 

4.4變量搜索路徑指定

1)用attach將表添加到搜索路徑(為了避免每次都要寫$):attach(pt)

     

 不需要這個表用detach,語句是:detach(pt)

2)不想每次寫表名,還可以使用with:

 with(mtcars,{

+ plot(mpg,disp)

+ plot(mpg,wt)

+ })

   

 

  

在實際應用中建議把表名寫清楚,不建議這樣做

 

因子factor

 5.1名義型變量

diabetes<-c("type1","type2","type1","type2")

diabetes1<-factor(diabetes)

 

 

5.2 有序型變量order,值順序指定level

status<-c("poor","improved","excellent","poor")

status1<-factor(status,ordered = T,levels = c("poor","improved","excellent"))

 

 

5.3 案例(作業)

有因子變量在表中:

patientID<-c(1,2,3,4)                         

age<-c(26,30,27,48)

diabetes<-c("type1","type2","type1","type2")

status<-c("poor","improved","excellent","poor")

diabetes1<-factor(diabetes)

status1<-factor(status,ordered = T,levels = c("poor","improved","excellent"))

Pt1<-data.frame(patientID,age,diabetes1,status1)

分析這個表使用summary(pt1)patientIDage為數值型,所以計算了它們的最大最小均值等,diabetes1status1為因子變量,所以統計了它們的屬性出現的次數。

 

 

 

6 列表list,可以混合以上各種數據

6.1 列表的定義

首先定義幾個變量:

x<-"aaaa"

y<-c(22,44,55)

z<-matrix(1:9,nrow=3)

k<-c("one","two","three")

list1<-list(x,y,z,k)

 

給列表中的元素賦值:list2<-list(var1=x,var2=y,var3=z,var4=k)

 

 

6.2 列表的訪問

用兩個中括號或者訪問名字

list2[[1]] 

list2[["var1"]]  

 

6.3 列表的用途

R語言的很多分析結果,都是以list形式返回的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM