【发布时间】:2016-01-29 17:19:41
【问题描述】:
我处理一些 shapefile 和光栅。
当我逐行(或逐部分)执行脚本时,一切都按预期运行。但是,如果我将它作为一个整体执行(要么是源它要么是 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
错误信息:Error in { : task 2 failed - "Object of type 'S4' is not subsettable"
fishnet 是一个 SpatialPolygonsDataFrame。代码对我的 SpPolDaFr 进行子集化,因此我在列表中得到了 15 个子集化的 SpPolDaFr。
我在想也许是foreach 的原因。但是,我有其他 foreach 先验调用运行良好。我执行doParallel 循环是因为我的 SpPolDaFr 大小为 11 GB 以加快速度。
【问题讨论】:
-
“逐行”是什么意思?
fishnet是什么,您是否验证过fishnet@data实际上包含一个名称很容易输入错误的列表元素?顺便说一句,您似乎只是在对数据进行直方图;不需要多巴或循环。 -
@CarlWitthoft:“逐行”意味着我只执行属于一起的部分脚本。我为你概括了我的代码。调用中没有错字,因为如果我只执行我的问题中提供的这段代码,它就可以工作。但是,如果我获取脚本,它会抛出上面显示的错误消息。我不做直方图,我只是将一个非常大的 SpPolDaFr 子集十五次。