R in action -- 2.1 數據結構
阿新 • • 發佈:2017-07-05
ram style 處理 cells bsp 創建 通過 不同 div
R in action -- 2.1 數據結構
1、R中用來存儲數據的結構:標量、向量、數組、數據框、列表。
2、R中可以處理的數據類型:數值、字符、邏輯、復數、原生(字節)。
3、向量:
- 向量是用來存儲數值型、字符型或邏輯型數據的一維數組。
- c() 用來組合括號內的數據並創建向量。
# a <- c(1,2,3,5,8,11,19)
# b <- c("Python","go","R","C#","Ruby","swift")
- # d <- c(TURE,TURE,FALSE,FALSE)
- 單個向量中的數據必須擁有相同的數據類型或模式,不可混雜。
- 標量指只含一個元素的向量,如 a01 <- 3。
- 向量中的數據可通過偏移量讀取(偏移量從1開始)。
> a <- c(1,2,3,5,8,11,19) > a[3] [1] 3 > a[c(1,2,3,6)] [1] 1 2 3 11 > a[c(3:6)] [1] 3 5 8 11
4、矩陣
矩陣是一個二維數組,每個元素都有相同的模式
通過matrix創建數組,並可用下標訪問,舉例如下:
> test01matrix=matrix(1:20,nrow=4,ncol=5) > test01matrix [,1] [,2] [,3] [,4] [,5] [1,] 1 5 9 13 17 [2,] 2 6 10 14 18 [3,] 3 7 11 15 19 [4,] 4 8 12 16 20 > test01matrix[2,] [1] 2 6 10 14 18 > test01matrix[3,] [1] 3 7 11 15 19 > test01matrix[,3] [1] 9 10 11 12 > test01matrix[2,3] [1] 10 > test01matrix[2,c(2,3)] [1] 6 10 > > > cells <- c(1,2,3,5,8,11) > rnames <- c("R1","R2","R3") > cnames <- c("C1","C2") > test02matrix=matrix(cells,nrow=3,ncol=2,byrow=TRUE,dimnames=list(rnames,cnames)) > test02matrix C1 C2 R1 1 2 R2 3 5 R3 8 11 > test02matrix=matrix(cells,nrow=3,ncol=2,byrow=FALSE,dimnames=list(rnames,cnames)) > test02matrix C1 C2 R1 1 5 R2 2 8 R3 3 11
5、數組
數組是維度可以大於2的矩陣,通過array創建,舉個栗子
> dim1 <- c("A1","A2") > dim2 <- c("B1","B2","B3") > dim3 <- c("C1","C2","C3","C4") > test03array <- array(1:24,c(2,3,4),dimnames=list(dim1,dim2,dim3)) > test03array , , 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
6、數據框
數據框可包含不同模式的數據。可通過data.frame()創建。
每一列數據的模式必須一致
> ID <- c(1,2,3,4) > age <- c(25,26,28,58) > diabetes <- c("T1","T2","T1","T1") > status <- c("good","none","none","poor") > patientdata <- data.frame(ID,age,diabetes,status) > patientdata ID age diabetes status 1 1 25 T1 good 2 2 26 T2 none 3 3 28 T1 none 4 4 58 T1 poor > patientdata[1:2] ID age 1 1 25 2 2 26 3 3 28 4 4 58 > patientdata[c("diabetes","status")] diabetes status 1 T1 good 2 T2 none 3 T1 none 4 T1 poor > patientdata$age [1] 25 26 28 58 > table(patientdata$ID,patientdata$status) good none poor 1 1 0 0 2 0 1 0 3 0 1 0 4 0 0 1
函數attach()用來將數據框添加到路徑中,detach()用來退出路徑
函數with()也可達到同樣的效果
R in action -- 2.1 數據結構