我怎樣才能找出一個函數的版本被稱爲?例如,如果我在data.frame上使用unique
,我認爲我正在使用unique.data.frame
。但是,沒有unique.raster
函數,雖然有raster::unique
。但是,如果我使用的是trace(unique)
,我只能得到unique
函數正在使用的信息。
例如,我想確認一下,當我撥打unique(data.frame(1))
時,unique.data.frame
正在被調用。
例子:
我無法弄清楚爲什麼unique(raster_object)
作品在命令行而不是一個函數內部。顯然,unique.default
正在函數內部調用,所以我想明確說明哪個'唯一。 &
例如這個工程:
library(raster)
a <- rasterFromXYZ(data.frame(a=1:2,b=2:3,c=3:4))
unique(a)
但是,當我把這個函數:
myfun <- function(){
a <- rasterFromXYZ(data.frame(a=1:2,b=2:3,c=3:4))
b <- crop(a, extent(c(1,2,3,4)))
unique(a)
}
即使包使用raster
作爲依賴後,我建立了封裝和負載它在新的R會話中,我收到錯誤:
> myfun()
Error in unique.default(a) : unique() applies only to vectors
即使sessionInfo()
顯示光柵包已加載。
,如果我用debug(unique)
,它似乎並沒有被告訴我正在調用該函數:
Browse[6]> unique(a)
Error in unique.default(a) : unique() applies only to vectors
Browse[6]> raster::unique(a)
debugging in: raster::unique(a)
debug: standardGeneric("unique")
我不能複製你的問題,但通常你可以調用'調試(唯一的)',然後讓你的'unique'呼叫,步(通過鍵入「N」),看看有什麼函數被調用 – eddi
@eddi重現,你可以嘗試'庫(devtools); install_github(「rhwsd」,「dlebauer」,ref =「717c18f5」);庫(rhwsd); myfun()' –