我编写了一个带有三个参数的函数:
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个数据帧)。
我知道您可以使用zip()函数在Python中执行此操作,然后通过append()和concatenate()轻松附加结果,但到目前为止我还没有找到R中的等效项。任何帮助都非常感谢!
答案 0 :(得分:0)
我们可以使用mget
获取多个对象的值,使用Reduce
或do.call
到cbind
list
vectors
< / p>
Reduce(cbind, c(mget(ls(pattern = "\\.list")), NA))
或
do.call(cbind, c(mget(c("x.list", "y.list")), NA))