微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从 R 中的并行 foreach 循环中添加列以输出数据帧

如何解决如何从 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 举报,一经查实,本站将立刻删除。