考虑从browser()
该输出位于内部calcDistance
:值未被复制到下一个(本地)环境?
Called from: calcDistance(object = rst, xy = xy[[i]][j, ], effect.distance = effect.distance)
Browse[1]> ls.str()
effect.distance : num 236
object : Formal class 'RasterLayer' [package "raster"] with 12 slots
xy : Named num [1:2] -101.8 35.5
Browse[1]>
debugging in: xyValues(object = object, xy = xy, buffer = effect.distance)
debug: standardGeneric("xyValues")
Browse[2]> ls.str()
object : Formal class 'RasterLayer' [package "raster"] with 12 slots
xy : Named num [1:2] -101.8 35.5
功能如下:simulationRun> createDistRaster> calcDistance>光栅:: xyValues。在上面的输出中,你只能看到最后两个。 xyValues
来自光栅包。
第一段代码显示有三个对象存在:effect.distance
,object
,xy
。 在第二段中,我们通过调用debug(xyValues)来进入xyValues。 在第三段中,我们可以看到effect.distance
缺失。
我的问题是:即使object
和xy
似乎被复制到xyValues
环境就好,effect.distance
不是。这怎么解释?
我sessionInfo()
R version 2.11.1 (2010-05-31)
i386-pc-mingw32
locale:
[1] LC_COLLATE=Slovenian_Slovenia.1250 LC_CTYPE=Slovenian_Slovenia.1250
[3] LC_MONETARY=Slovenian_Slovenia.1250 LC_NUMERIC=C
[5] LC_TIME=Slovenian_Slovenia.1250
attached base packages:
[1] splines stats graphics grDevices utils datasets methods
[8] base
other attached packages:
[1] raster_1.3-11 foreach_1.3.0 codetools_0.2-2 iterators_1.0.3
[5] Hmisc_3.8-2 survival_2.35-8 spam_0.22-0 splancs_2.01-27
[9] sp_0.9-66 spatstat_1.20-2 deldir_0.0-12 mgcv_1.6-2
loaded via a namespace (and not attached):
[1] cluster_1.12.3 grid_2.11.1 lattice_0.18-8 Matrix_0.999375-39
[5] nlme_3.1-96 tools_2.11.1
该函数的作者已经通过向所有方法添加明确的参数缓冲区和乐趣来解决了问题。正如Joris指出的那样,将缓冲区参数作为矩阵传递给了窍门。将缓冲区变量存储在全局环境中也会起到一定的作用。这并不重要,因为它已经在原始功能中得到了修复。 :) – 2010-08-27 07:05:11