考慮從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