R:使用foreach循环时“类型'S4'的对象不是子集的”

pat*_*t-s 2 foreach r

我处理一些形状文件和栅格。

当我逐行(或部分)执行我的脚本时,一切都按预期运行。但是,如果我将它作为一个整体执行(源代码或 STRG+A 然后 STRG+ENTER),它会在以下部分引发错误:

# ... some code

list = list()

list = foreach(i = seq(from = 9, to = 80, by = 5)) %dopar% {

    df[which(df@data$column.name > i), ] 
} 

# ... some code
Run Code Online (Sandbox Code Playgroud)

错误信息: Error in { : task 2 failed - "Object of type 'S4' is not subsettable"

fishnetSpatialPolygonsDataFrame在哪里。代码子集我的 SpPolDaFr 所以我在列表中写了 15 个子集 SpPolDaFr。

我在想也许是foreach原因。但是,我有其他foreach先验调用,它们运行良好。我进行doParallel循环是因为我的 SpPolDaFr 大小为 11 GB 以加快速度。

Ste*_*ton 5

当工作人员尚未加载定义其中一个变量的类的包时,您通常会收到此类错误。如果“df”的类是“sp”包定义的“SpatialPolygonsDataFrame”,那么您应该使用foreach.packages="sp"选项,以便工作人员能够正确操作“df”。