假设我有一个列表a
,如下所示:
a1<-list(1,2,list("X",10))
a2<-list("A",list("B"),"C")
a3<-list(list("D",list("E")),3.14)
a<-list(a1,a2,a3)
如何将a
转换为:
list(1,2,list("X",10),"A",list("B"),"C",list("D",list("E")),3.14)
我想要一个适用于任意数量a1, a2, a3... an
的解决方案,不仅适用于上面示例中的a1, a2
和a3
。
在Mathematica中我只会使用Flatten[a,1]
,但是如何在R中做到这一点?
答案 0 :(得分:5)
将unlist
与recursive=FALSE
:
dput(unlist(a,recursive=FALSE))
list(1, 2, list("X", 10), "A", list("B"), "C", list("D", list(
"E")), 3.14)
答案 1 :(得分:3)
do.call('c', a)
会比Reduce('c', a)
更快。 unlist(a, recursive = FALSE, use.names = FALSE)
会比unlist(a, recursive = FALSE)
更快。 unlist
是这种情况下的方法。
会发表评论,但我似乎无法发表。
答案 2 :(得分:1)
很简单:
Reduce("c",a)
就是这样。
答案 3 :(得分:1)
unlist(a, recursive=FALSE)
您要找的是什么?