如何在 R 中使用 foreach 并行查找来停止列表输出

How to stop list output using foreach parallel look in R

我是 运行 一个 foreach 循环,我想在其中读取数据、修改数据并并行输出文件。它工作正常,但我总是在循环完成后得到文件列表的输出。如果我在循环中包含 rm(data) ,数据就会消失,但会输出一个空数据帧列表。这是我的代码的概括:

foreach (f = 1:100, .packages = c('lubridate','vroom','readr')) %dopar% {
   data <- vroom(file)

   # manipulate data

   write_csv(data, file = output_file)
   rm(data)}

问题是我得到了一个空数据框的列表(因为我使用 rm(data) 删除了它们)。

+   rm(data)
+   
+ }
[[1]]
NULL

[[2]]
NULL

[[3]]
NULL

我该怎么做才能摆脱这些多余的、不需要的输出?谢谢。

您得到 NULL,因为它是最后一个输出(来自 rm())。 您可以使用 .combine = 'c' 只得到一个 NULL 或将 foreach 的调用包装在 invisible().