gpt4 book ai didi

r - 将 lapply 转换为 foreach?

转载 作者:行者123 更新时间:2023-12-04 12:34:17 25 4
gpt4 key购买 nike

我希望转换第二个 lapply函数 ( # Make the new list ) 转换为 foreach循环,使用 foreach包裹。

## Example data
lst <- lapply(1:30, function(x) lapply(1:5, function(y) rnorm(10)))

## Make the new list
res <- lapply(1:5, function(x) lapply(1:10, function(y) sapply(lst, function(z) z[[x]][[y]])))

我不确定这是否可能。我不关心 lapply性能优于 foreach循环。对于上下文,我正在以这种方式重新组织向量列表:
new_thing[[5]][[10]][30] <- daily_by_security[[30]][[5]][10]

谢谢!

最佳答案

为了弄清楚如何解决您的问题,我查看了 foreach示例,第二个正是您正在寻找的:

library("foreach")
example(foreach)

# equivalent to lapply(1:3, sqrt)
foreach(i=1:3) %do% sqrt(i)

然后我将其调整为您的问题:
lst <- lapply(1:30, function(x) lapply(1:5, function(y) rnorm(10)))
resFE <- foreach(i = 1:5) %do%
lapply(1:10, function(y) sapply(lst, function(z) z[[i]][[y]]))

编辑: OP 能够根据我的工作找出解决方案。这是解决方案:
resFE <- foreach(i = 1:5, .packages = "foreach") %dopar% 
{ foreach(m = 1:10) %dopar%
{ foreach(t = lst, .combine = c) %do%
{ t[[i]][[m]] } } }

关于r - 将 lapply 转换为 foreach?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32595329/

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