我不知道如何在R中列出列表.我有几个列表,我想将它们存储在一个数据结构中,以便更容易地访问它们.但是,看起来你不能在R中使用列表列表,所以如果我从另一个列表中获取列表l1,比如说l2那么我就无法访问元素l1.我该如何实现它?
编辑 - 我将展示一个对我不起作用的例子:
list1 <- list()
list1[1] = 1
list1[2] = 2
list2 <- list()
list2[1] = 'a'
list2[2] = 'b'
list_all <- list(list1, list2)
a = list_all[1]
a[2]
#[[1]]
#NULL
Run Code Online (Sandbox Code Playgroud)
但a
应该是一个清单!
Das*_*son 45
您可以轻松制作列表列表
list1 <- list(a = 2, b = 3)
list2 <- list(c = "a", d = "b")
mylist <- list(list1, list2)
Run Code Online (Sandbox Code Playgroud)
mylist现在是一个包含两个列表的列表.要访问list1,您可以使用mylist[[1]]
.如果你想能够像mylist$list1
那样的东西你需要做一些事情
mylist <- list(list1 = list1, list2 = list2)
# Now you can do the following
mylist$list1
Run Code Online (Sandbox Code Playgroud)
编辑:回复您的编辑.只需使用双括号索引
a <- list_all[[1]]
a[[1]]
#[1] 1
a[[2]]
#[1] 2
Run Code Online (Sandbox Code Playgroud)
用你的例子::
list1 <- list()
list1[1] = 1
list1[2] = 2
list2 <- list()
list2[1] = 'a'
list2[2] = 'b'
list_all <- list(list1, list2)
Run Code Online (Sandbox Code Playgroud)
使用'[['检索列表的元素:
b = list_all[[1]]
b
[[1]]
[1] 1
[[2]]
[1] 2
class(b)
[1] "list"
Run Code Online (Sandbox Code Playgroud)
如果您试图保留 a list
of list
s (类似于python
's list.append()
),那么这可能有效:
a <- list(1,2,3)
b <- list(4,5,6)
c <- append(list(a), list(b))
> c
[[1]]
[[1]][[1]]
[1] 1
[[1]][[2]]
[1] 2
[[1]][[3]]
[1] 3
[[2]]
[[2]][[1]]
[1] 4
[[2]][[2]]
[1] 5
[[2]][[3]]
[1] 6
Run Code Online (Sandbox Code Playgroud)