缺少S3方法,但更高级别的功能起作用

时间:2015-07-17 22:09:28

标签: r methods r-grid gtable

我正在尝试确定grobWidth应用于gtable个对象的问题(请参阅gtable:::widthDetails.gtable);将大小指定为单位总和(unit.arithmetic对象),

时会出现问题
library(grid)
u = unit(1,"npc") + unit(2,"mm")
grid:::absolute.units(u)
#Error in UseMethod("absolute.units") : 
# no applicable method for 'absolute.units' applied to an object of class #"c('unit.arithmetic', 'unit')"

值得注意的是,absolute.size有效,即使它调用了grid:::absolute.units

grid::absolute.size(u)
#[1] 1null+2mm

这怎么可能?

1 个答案:

答案 0 :(得分:3)

好的,浏览grid source code,我发现方法定义的,

absolute.size()

但它没有导出。所以{{1}}知道它,因为它在包名称空间中,但是从外部调用它(例如gtable)失败。