基本上,我想将多个列表合并到一个列表中.所有列表都有相同的结构.这是一个例子:
file1=list(A=1,B=2)
file2=list(A=2,B=3)
file3=list(A=3,B=4)
Run Code Online (Sandbox Code Playgroud)
我知道mapply()或Map()工作.
> mapply(c, file1, file2, file3, SIMPLIFY=FALSE)
[[1]]
[1] 1 2 3
[[2]]
[1] 2 3 4
Run Code Online (Sandbox Code Playgroud)
但问题是我实际上有500个列表,好吧,我可以肯定地复制和粘贴对象名称500次.但是,我想学习如何有效地做到这一点.我有一个包含每500个列表名称的向量,像这样,
lsNames=c("file1","file2","file3")
Run Code Online (Sandbox Code Playgroud)
但我不知道如何开始,我感谢任何帮助,谢谢.
这是一个替代方案,通过构造然后评估mapply()OP中显示的相同调用来工作:
do.call(mapply, c(FUN=c, sapply(lsNames, as.symbol), SIMPLIFY=FALSE))
# $A
# file1 file2 file3
# 1 2 3
#
# $B
# file1 file2 file3
# 2 3 4
Run Code Online (Sandbox Code Playgroud)