我们使用inner <- rbindlist(lapply(..., FUN))来组合使用future包创建的仿真结果。在这种情况下,rbindlist(lapply(..., FUN))是由rbindlist(future_lapply(..., inner))嵌套的,因为模拟分布在线程上。
只要FUN()返回一个表,它就能正常工作。我们现在想对仿真进行更详细的分析,这需要我们从FUN()返回多个表。表现在将有不同的形状,我们想要结合喜欢。
如果*apply()返回多个表,如何使用FUN()函数将表组合在一起?我们想出了一个解决方案,它可以在下面工作,但并不是很好。对于如何改进这段代码以再次适应*apply(X, FUN)结构,有什么建议吗?
foo <- list(
list(data.table(a = 1), data.table(b = 2)),
list(data.table(a = 3), data.table(b = 4)),
list(data.table(a = 5), data.table(b = 6))
)
MapRbind <- function(...) {
Map(rbind, ...)
}
do.call(MapRbind, foo)我看不到将对do.call()的调用转移到MapRbind()中的方法。
发布于 2020-10-09 10:13:29
就是这个?
MapRbind <- function(our_list) {
do.call(function(...) Map(rbind, ...), our_list)
}
> MapRbind(foo)
[[1]]
a
1: 1
2: 3
3: 5
[[2]]
b
1: 2
2: 4
3: 6https://stackoverflow.com/questions/64277886
复制相似问题