- 列表是一种特别的对象集合,它的元素也由序号(下标)区分,但是各元素的类型可以是任意对象,不同元素不必是同一类型。元素本身允许是其它复杂数据类型,比如,列表的一个元素也允许是列表。
- 列表元素用“列表名[[下标]]”的格式引用。
- 但是,列表不同于向量,我们每次只能引用一个元素,如rec[[1:2]]的用法是不允许的。
- 注意:“列表名[下标]”或“列表名[下标范围]”的用法也是合法的,但其意义与用两重括号的记法完全不同,两重记号取出列表的一个元素,结果与该元素类型相同,如果使用一重括号,则结果是列表的一个子列表(结果类型仍为列表)。
> rec = list(name="李明", age=30, scores=c(85, 76, 90))
> rec
$name
[1] "李明"
$age
[1] 30
$scores
[1] 85 76 90
> rec[3]
$scores
[1] 85 76 90
> rec[[3]]
[1] 85 76 90
> rec[[3]][1:2]
[1] 85 76
> mode(rec[1])
[1] " list "
> mode(rec[[1]])
[1] " character "
引用列表元素
- 列表名[[“元素名”]]
- 列表名$元素名
lapply(X, FUN, …)
lapply( ):代表list apply,它能对列表的每个组件执行给定的函数,其返回值也是一个列表。它的基本用法是: lapply(X, FUN, …)
> lapply (list(1:3, 25:29), median)
[[1]]
[1] 2
[[2]]
[1] 27
sapply(X, FUN, … )
sapply( ):代表simplified lapply,如果lapply()返回的结果能转化为矩阵或者向量的形式,这时可以根据用户的需要,让结果变得简单,就可以用sapply。
> sapply (list(1:3, 25:29), median)
[1] 2 27