[英]Loop simultaneously over two lists in R
我写了一个函数,它有三个参数:
create.template <- function(t.list, x, y){
temp <- cbind(get(t.list[x]), get(t.list[y]), NA)
}
此函数的输出是一个包含11列和17行的data.frame。
现在我想在函数上创建一个带有两个列表的循环,一个用于x,一个用于y。 从而
x.list <- list(1,2,3)
y.list <- list(4,5,6)
在最后一步,我想建立类似的东西
for (x in x.list and y in y.list){
create.template(t.list, x, y)
}
并且可能在一个最终数据帧中按行方式组合结果数据帧(3个数据帧,每个数据帧11列)。
我知道您可以使用zip()函数在Python中执行此操作,然后通过append()和concatenate()轻松追加结果,但到目前为止我还没有找到R中的等效项。 任何帮助都非常感谢!
我们可以使用mget
获取多个对象的值,使用Reduce
或do.call
来cbind
vectors
list
Reduce(cbind, c(mget(ls(pattern = "\\.list")), NA))
要么
do.call(cbind, c(mget(c("x.list", "y.list")), NA))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.