相关疑难解决方法(0)

如何覆盖包命名空间中的不可见函数?

我基本上想要改变包的不可见功能.对于可见函数,即在methods调用它们时没有星号的函数,我发现两个帖子如何实现我的目标:

  1. 使用assignInNamespace:请参阅R-help上的帖子.
  2. 使用fix:请参阅stackoverflow上的帖子

虽然这两种方法都适用于导出/可见功能(我predict.lm在下面进一步使用第二种方法并使用该功能测试第一种方法subset.data.frame),但它们不适用于不可见的功能,例如predict.ar.这是为什么?有解决方法吗?

这是一个最小的例子:

显示predict.lm是可见的,predict.ar不是:

methods(predict)
 [1] predict.Arima*             predict.HoltWinters*       predict.StructTS*         
 [4] predict.ar*                predict.arima0*            predict.glm               
 [7] predict.lm                 predict.loess*             predict.mlm               
[10] predict.nls*               predict.poly               predict.ppr*              
[13] predict.prcomp*            predict.princomp*          predict.smooth.spline*    
[16] predict.smooth.spline.fit*
Run Code Online (Sandbox Code Playgroud)

申请predict.lm:

x <- rnorm(5)
y <- x + rnorm(5)
predict(lm(y ~ x))
#          1          2          3          4          5 
#  1.0783047  1.5288031  0.3268405  0.8373520 -0.9833746
Run Code Online (Sandbox Code Playgroud)

更改predict.lm输入的猫在函数体的开头("第一线改变predict.lm \n").(您必须在编辑器中手动执行此操作):

fix(predict.lm)
predict(lm(y ~ x))
# …
Run Code Online (Sandbox Code Playgroud)

namespaces r function

29
推荐指数
1
解决办法
9817
查看次数

标签 统计

function ×1

namespaces ×1

r ×1