我基本上想要改变包的不可见功能.对于可见函数,即在methods调用它们时没有星号的函数,我发现两个帖子如何实现我的目标:
assignInNamespace:请参阅R-help上的帖子.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)