我不明白 R 中 .First 函数的意义。我的原因是 .Rprofile 中的任何代码都将在 R 启动时获取并执行。
这个
.First<-function(){
library('devtools')
}
和这个
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"
谢谢!
最佳答案
这可能是不必要的,但它确实提供了另一个修改启动的地方。拥有它当然不会有什么坏处。
我通常在不同的目录中运行 R 以保持分离;链接到一个通用的 .Rprofile;并使用 .First 为我正在处理的特定问题定制当前的 R 运行环境。如果 .First action 不可用,我就必须创建一个。
关于r - .R 中的第一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35356603/