如何将R列表中的元素相互附加,但仅附加到顶层?

如何将R列表中的元素相互附加,但仅附加到顶层?,r,list,stack,append,melt,R,List,Stack,Append,Melt,我需要附加顶级列表中包含的列表。应保留其他级别,并且可能有2个以上的元素 l <- list(list(1:5), list(6:10)) required <- c(l[[1]], l[[2]]) l1)我们可以用c从base R do.call(c, l) lapply(l, unlist, recursive = FALSE) Map(c, l) -输出 #[[1]] #[1] 1 2 3 4 5 #[[2]] #[1] 6 7 8 9 10 2)或使用取消

我需要附加顶级列表中包含的列表。应保留其他级别,并且可能有2个以上的元素

l <- list(list(1:5), list(6:10))
required <- c(l[[1]], l[[2]])
l1)我们可以用
c
base R

do.call(c, l)
lapply(l, unlist, recursive = FALSE)
Map(c, l)
-输出

#[[1]]
#[1] 1 2 3 4 5

#[[2]]
#[1]  6  7  8  9 10
2)或使用
取消列表
使用
递归=假
。也是一种
base R
解决方案

unlist(l, recursive = FALSE)

3)或使用
lappy
base R


4)或使用
Map
(另一个
base R


5)或从
purr

library(purrr)
flatten(l)

您还可以使用
mapply()

或者也
lappy()

sapply()


所有
基本R
解决方案。

这可能是一个顺序循环;平均耗时增加10%
#Code
mapply(c,l)
[[1]]
[1] 1 2 3 4 5

[[2]]
[1]  6  7  8  9 10
#Code 2
lapply(l,unlist)
[[1]]
[1] 1 2 3 4 5

[[2]]
[1]  6  7  8  9 10
#Code 3
sapply(l,c)
[[1]]
[1] 1 2 3 4 5

[[2]]
[1]  6  7  8  9 10