3-4 列表的子集

时间:2022-07-25
本文章向大家介绍3-4 列表的子集,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
#列表的子集 Subsetting List

#[[]] / $ / [[]][] / [[]][[]]
#嵌套列表 /不完全匹配(partial matching)


> x <- list(id=1:4,height=170,gender="male")
> x[1] #找第1列的元素
$`id`
[1] 1 2 3 4

> x["id"] #两个函数作用相同
$`id`
[1] 1 2 3 4

> x[[1]]
[1] 1 2 3 4

> x[["id"]]
[1] 1 2 3 4

> x$id
[1] 1 2 3 4

> x[c(1,3)] #找出第1列和第3列的元素
$`id`
[1] 1 2 3 4

$gender
[1] "male"


> y <- "id"
> x[["id"]]
[1] 1 2 3 4

> x[[y]]
[1] 1 2 3 4

> x$id
[1] 1 2 3 4

> x$y #$只能用于引号名字而不能用于名字里包含的变量
NULL

> x <- list(a=list(1,2,3,4),b=c("Monday","Tuesday"))
> x
$`a`
$`a`[[1]]
[1] 1

$`a`[[2]]
[1] 2

$`a`[[3]]
[1] 3

$`a`[[4]]
[1] 4

$b
[1] "Monday"  "Tuesday"



> x[[1]]
[[1]]
[1] 1

[[2]]
[1] 2

[[3]]
[1] 3

[[4]]
[1] 4


> x[[1]][[2]]
[1] 2

> x[[1]][2]
[[1]]
[1] 2


> x[[c(1,3)]]
[1] 3

> x[[c(2,2)]]
[1] "Tuesday"


> l <- list(asdfghj=1:10)
> l$asdfghj
 [1]  1  2  3  4  5  6  7  8  9 10

> l$a #不完全匹配
 [1]  1  2  3  4  5  6  7  8  9 10

> l[["a"]]
NULL

> l[["a",exact=FALSE]] #嵌套做不完全匹配时后面加"exact=FALSE"
 [1]  1  2  3  4  5  6  7  8  9 10

> X <- list(asdfghj=1:10,b=1:2,aaa=3:5)
> x$a
[[1]]
[1] 1

[[2]]
[1] 2

[[3]]
[1] 3

[[4]]
[1] 4



> x[["a",exact=FALSE]]
[[1]]
[1] 1

[[2]]
[1] 2

[[3]]
[1] 3

[[4]]
[1] 4


> x$as
NULL