我正在使用R分析线性混合效果模型(nlme :: lme)。我想在Alpha级别上用虚线绘制ACF值(就像plot.ACF一样)。
在require(nlme)
之后,我可以运行ACF,但是plot.ACF仍然不可用。我可以通过nlme:::plot.ACF
访问它,这意味着它被指定为隐藏函数。软件包的此功能是否由于某些原因而搁置?如果没有,还有其他可能的解释吗?有谁知道我可以使软件包导出它的方法(即使在更新之后)?
答案 0 :(得分:1)
是的,它是从nlme
程序包的前端隐藏的(即未导出);我不知道这是否是改变。
> nlme::plot.ACF
Error: 'plot.ACF' is not an exported object from 'namespace:nlme'
但是,您可以使用?plot.ACF
来访问该帮助,其中显示了以下用法:
## S3 method for class 'ACF' plot(x, alpha, xlab, ylab, grid, ...)
请注意,这并不是建议使用plot.ACF
,而是建议使用plot
。之所以可行,是因为plot
函数是面向对象的,因此,只要在plot.ACF
对象上调用plot
,就会在后台调用ACF
。
也就是说,要绘制ACF
对象,只需键入plot
,而不是plot.ACF
。
答案 1 :(得分:1)
据我所知,plot.ACF函数从未导出过。我可以从NAMESPACE文件中找到的https://cran.r-project.org/src/contrib/Archive/nlme/中nlme的最早版本是nlme_3.1-40(日期:2003-05-16),并且该功能在控制台上是不可见的。仍然可以使用methods
函数访问该代码,并且可以使用三点机制(:::
)或getAnywhere
函数访问该代码。
getAnywhere("plot.ACF") Retruns formal parameters, funciton body and information about functions environment
getS3method("plot", "ACF") # returns same code as getAnywhere
x <- methods(class="ACF")
str(x)
#--------------
'MethodsFunction' chr "plot.ACF"
- attr(*, "info")='data.frame': 1 obs. of 4 variables:
..$ visible: logi FALSE
..$ from : Factor w/ 1 level "registered S3method": 1
..$ generic: chr "plot"
..$ isS4 : logi FALSE
- attr(*, "byclass")= logi TRUE
对于较早的,有些过时的评论,我深表歉意,因为在重新阅读您的帖子后,您似乎了解该功能可用,只是看不见。仍然不清楚的是您为什么认为它是可见的。
如果要导出plot.ACF,可以将其添加到NAMESPACE文件中的导出函数列表中,然后重新生成软件包。或者,您可以通过以下方式即时导出:
plot.ACF <- getAnywhere("plot.ACF")