gpt4 book ai didi

r - foreach:保留名称

转载 作者:行者123 更新时间:2023-12-04 03:07:16 24 4
gpt4 key购买 nike

有没有办法让 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 时才能正常工作。 (这是默认设置)。

关于r - foreach:保留名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27276269/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com