问题描述
在下面的代码中,我试图在 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 (将#修改为@)