有没有一种方法可以使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循环后分配名称的解决方案不感兴趣。)
问候
在使用嵌套的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] 删除。
我来说两句