在 R 中使用 foreach 时出错 - 没有适用于 'filter' 的方法应用于 class "list" 的对象
Getting an error in using foreach in R - no applicable method for 'filter' applied to an object of class "list"
我正在使用 foreach
。谁能解释一下原因。
Error in UseMethod("filter") :
no applicable method for 'filter' applied to an object of class "list"
library(dplyr)
library(doFuture)
library(foreach)
# PARALLEL PROCESSING
registerDoFuture()
plan(multicore, workers = 1)
tbl <- tibble(id = 1:10)
res <- foreach(ID = 1:10) %do%
tbl %>% filter(id == ID)
# it simply works with for loop
l = list()
for (ID in 1:10)
{
l[[ID]] <- tbl %>% filter(id == ID)
}
这里需要注意运算符的优先级。将你的循环体用大括号括起来以便清楚
res <- foreach(ID = 1:10) %do%
{ tbl %>% filter(id == ID) }
否则你就是运行
res <- (foreach(ID = 1:10) %do% tbl) %>%
filter(id == ID)
在这种情况下,这不是您想要的。
我正在使用 foreach
。谁能解释一下原因。
Error in UseMethod("filter") :
no applicable method for 'filter' applied to an object of class "list"
library(dplyr)
library(doFuture)
library(foreach)
# PARALLEL PROCESSING
registerDoFuture()
plan(multicore, workers = 1)
tbl <- tibble(id = 1:10)
res <- foreach(ID = 1:10) %do%
tbl %>% filter(id == ID)
# it simply works with for loop
l = list()
for (ID in 1:10)
{
l[[ID]] <- tbl %>% filter(id == ID)
}
这里需要注意运算符的优先级。将你的循环体用大括号括起来以便清楚
res <- foreach(ID = 1:10) %do%
{ tbl %>% filter(id == ID) }
否则你就是运行
res <- (foreach(ID = 1:10) %do% tbl) %>%
filter(id == ID)
在这种情况下,这不是您想要的。