如何从 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 (将#修改为@)