foreach:保留名称

结石

有没有一种方法可以使foreach()返回一个命名的list / data.frame。例如

foo <- list(a = 1, b = 2)
bar <- foreach (x = foo) %do% { x * 2 }

返回list(2, 4)我希望它回来list(a = 2, b = 4)

另外,是否可以从循环体内访问名称?

(我对在foreach循环后分配名称的解决方案不感兴趣。)

问候

ache

在使用嵌套的foreach(与%:%运算符)之前,我一直在使用您的解决方案我想出了这个:

foo <- list(a = 1, b = 2)
bar <- foreach (x = foo, .final = function(x) setNames(x, names(foo))) %do% {
    x * 2
    }

诀窍是使用.final参数(这是在最终结果中一次应用的函数)来设置名称。这样比较好,因为它不使用临时变量,而且总体上更干净。它与嵌套列表一起使用,以便您可以在结构的多个层上保留名称。

请注意,只有在foreach具有参数.inorder=T(默认设置)的情况下,此方法才能正确运行

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章