关于列表操作,最易遗忘的两个小点,一是列表是向量,二是列表的一个中括号和两个中括号的索引区别。
一
列表是向量,length可以提取其列表的长度,vector可以通过调整mode来创建列表。二
1)单中括号返还的是一个新的列表,是原列表的自列表
2)双括号返还的是组件本身的类型,而非列表所以针对列表进行重新排序,或者删除列表的某个组件等操作是利用单中括号进行的.
##example,;列表排序和删除列表组件
x1 <- matrix(c(1,2,3,4,5,6), ncol=2)
x2 <- matrix(c(2,3,4,5), ncol=2)
x <- list(x1,x2)
x
[[1]]
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
[[2]]
[,1] [,2]
[1,] 2 4
[2,] 3 5
####列表进行排序
index <- order(sapply(x,nrow)) ##按照表格长度排序
##lapply返还列表格式,而sapply可以将可以转换成向量的列表变成向量结果,不能转换时,二者效果相近。
x <- x[index]
[[1]]
[,1] [,2]
[1,] 2 4
[2,] 3 5
[[2]]
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
####删除列表x的组件2
x [2] <- NULL
[[1]]
[,1] [,2]
[1,] 2 4
[2,] 3 5