问题:
如何找出正在调用的函数的版本?例如,如果我unique
在 data.frame 上使用,我假设我正在使用unique.data.frame
. 但是,没有unique.raster
功能,虽然有一个raster::unique
. 但是,如果我使用,例如,我只会得到正在使用trace(unique)
该功能的信息。unique
例如,我想确认当我打电话时unique(data.frame(1))
,unique.data.frame
正在被调用。
例子:
我无法弄清楚为什么unique(raster_object)
在命令行中起作用但在函数内部不起作用。显然,unique.default
在函数内部被调用,所以我想明确说明哪个 `unique.&
例如这有效:
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")