我不明白 R 中 .First 函数的意义。我的原因是 .Rprofile 中的任何代码都将在 R 启动时被获取并执行。
this
.First<-function(){
library('devtools')
}
and this
library('devtools')
在.Rprofile中具有完全相同的效果。
但是,这里有一个示例,显示 .First 可以发挥作用:
示例 1,您可以看到 X11.options()$type 正确变为 .Rprofile 中设置的 Xlib
>> cat .Rprofile
.First <- function() {
library(devtools)
}
setHook(
packageEvent("grDevices", "onLoad"),
function(...) grDevices::X11.options(type="Xlib")
)
>> Rscript -e 'X11.options()$type'
[1] "Xlib"
示例2,可以看到X11.options()$type仍然是cairo,.Rprofile中的setHook没有生效
>> cat .Rprofile
library(devtools)
setHook(
packageEvent("grDevices", "onLoad"),
function(...) grDevices::X11.options(type="Xlib")
)
>> Rscript -e 'X11.options()$type'
[1] "cairo"
- 在什么情况下我绝对必须使用 .First 函数?
- 为什么.First 在上面的例子中有所不同?
Thanks!
这可能是不必要的,但它确实提供了另一个修改启动的地方。拥有它当然不会有什么坏处。
我通常在不同的目录中运行 R 以保持不同的东西;链接到通用 .Rprofile;并使用 .First 根据我正在处理的特定问题定制当前的 R 运行环境。如果 .First 操作不可用,我必须创建一个。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)