繁体   English   中英

在R中的两个列表上同时循环

[英]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获取多个对象的值,使用Reducedo.callcbind 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM