列表的元素可以取不同的数据类型,甚至列表本身。因此列表属于递归型定义。
1.列表的建立
列表通常用函数 list()建立
list(object1,object2,...)
obeject1,object2... 可以是向量、矩阵、数组、数据框以及列表等
> name<-c("Jack","Mike","John")
> salary<-c(55000,60000,100000)
> m<-matrix(1:12,nr=3)
> J<-list(name,salary,m)
> J
[[1]]
[1] "Jack" "Mike" "John"
[[2]]
[1] 55000 60000 100000
[[3]]
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12
> JN<-list(Name=name,Salary=salary,Mat=m)#给元素命名
> JN
$Name
[1] "Jack" "Mike" "John"
$Salary
[1] 55000 60000 100000
$Mat
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12
2.列表元素的引用
> J[[1]]#列表名[[下标]]方式的引用
[1] "Jack" "Mike" "John"
> JN$Name#通过分量名字进行引用
[1] "Jack" "Mike" "John"
> JN$Mat
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12
> J[2]#列表名[i]返回的是一个列表
[[1]]
[1] 55000 60000 100000
> J[1:2]
[[1]]
[1] "Jack" "Mike" "John"
[[2]]
[1] 55000 60000 100000
>JN$Name[2]
[1] "Mike"