如何在 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().
我是 运行 一个 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().