首先声明,R语言对大小写敏感。
一、向量
vector类型可以存储数字、字符和逻辑类型。构建函数为C():
> a <- c(1,2,3,4)
> b <- c('dau','wau','mau')
> a[2](R语言中的索引是从1开始)
2
>b[c(1,3)]
dau mau
>b[1:3]
dau wau mau
二、矩阵
矩阵的元素类型必须是一致的(数字型,字符型或逻辑型)。构建函数matrix(vector,nrow=行数,ncol=列数,byrow=逻辑值,dimname=list(行名,列名))
> y <- matrix(1:20,nrow=4,ncol=5)(如未指定byrow,默认按列排序) > y [,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
> y <- matrix(1:20,nrow=4,ncol=5,byrow=TRUE) > y [,1] [,2] [,3] [,4] [,5] [1,] 1 2 3 4 5 [2,] 6 7 8 9 10 [3,] 11 12 13 14 15 [4,] 16 17 18 19 20
三、数组
数组就是二维及以上维数的矩阵,构建函数为array(vector,dimensions,dimnames)
> 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
四、数据框
数据框可以自由组合不同类型的列(同列数据类型相同,不同列数据类型可不一样,不同的列的长度必须一样),构建函数是data.frame(col1,col2,......)
> accounut <- c('Jet','Tina','Elliot','Anna') > level <- c(21,31,34,15) > vip <- c(FALSE,TRUE,TRUE,FALSE) > accountdata <- data.frame(accounut,level,vip) > accountdata accounut level vip 1 Jet 21 FALSE 2 Tina 31 TRUE 3 Elliot 34 TRUE 4 Anna 15 FALSE > names(accountdata) <- c('账户名','等级数','是否VIP') > accountdata 账户名 等级数 是否VIP 1 Jet 21 FALSE 2 Tina 31 TRUE 3 Elliot 34 TRUE 4 Anna 15 FALSE > names(accountdata) #查看数据框列名 [1] "账户名" "等级数" "是否VIP" > accountdata[1,1:3] #取第1行,第1列至第3列的数据 账户名 等级数 是否VIP 1 Jet 21 FALSE > accountdata[,1:2] 账户名 等级数 1 Jet 21 2 Tina 31 3 Elliot 34 4 Anna 15 > accountdata[,c('账户名','等级数')] 账户名 等级数 1 Jet 21 2 Tina 31 3 Elliot 34 4 Anna 15 > accountdata$"等级数" #取等级数的那一列,虽然取出来的数据都一样,但是类型已不是data.frame [1] 21 31 34 15
五、列表
列表是R语言中最复杂的数据结构,它允许任何类型的数据集合在一起(与数据框不同的是,列表中不同的列允许不同的长度),创建函数为list()。
> a <- 'create a list' > b <- c(1,2,6,33,2,45,4) > c <- matrix(1:12,nrow=3,ncol=4) > d <- accountdata > mylist <- list(listname=a,"年龄"=b,c,'游戏分析'=d) # 创建列表 > mylist $listname [1] "create a list"
$年龄 [1] 1 2 6 33 2 45 4
[[3]] [,1] [,2] [,3] [,4] [1,] 1 4 7 10 [2,] 2 5 8 11 [3,] 3 6 9 12
$游戏分析 账户名 等级数 是否VIP 1 Jet 21 FALSE 2 Tina 31 TRUE 3 Elliot 34 TRUE 4 Anna 15 FALSE
> mylist[[2]] #取第2个成分 [1] 1 2 6 33 2 45 4 > mylist$年龄 [1] 1 2 6 33 2 45 4
|
请发表评论