如何解决如何从 R 中的并行 foreach 循环中添加列以输出数据帧
在下面的代码中,我试图在 R 的 foreach 循环中运行“percentiles_func”函数。该函数生成一个数据框列表(在变量百分比内),我想从中将输出复制到非常大的输出数据帧(normals_1981_2010)。
vars <- c('tmin_F','tavg_F','tmax_F','pp')
windows <- c(15,15,29)
perc_list <- c('obs','smoothed_obs','windowed_obs','smoothed_windowed_obs')
percs <- c('00','02','05','10','20','25','30','33','40','50','60','66','70','75','80','90','95','98','100')
vcols <- seq(1,19,1)
cl <- makeCluster(6)
registerDoParallel(cl)
foreach (v=1:4,.packages=c('dplyr','lubridate')) %dopar% {
percents <- percentiles_func('1981-01-01','2010-12-31',vars[v],windows[v])
for (pl in 1:4){
for (p in 1:19){
normals_1981_2010 <- normals_1981_2010 %>%
mutate(!!paste0(vars[v],'_daily',perc_list[pl],'_perc',percs[p]) := percents[[pl]][,vcols[p]])}}}
不是将列添加到大型输出数据框(在循环外部,在全局环境中),输出如下所示:
[[1]]
NULL
[[2]]
NULL
[[3]]
NULL
[[4]]
NULL
我看过 .export 参数,但不明白如何使用它。有没有办法让 foreach 循环通过 mutate 语句将列添加到输出数据框中?甚至有可能吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。