我不明白R.的第一个函数.我的理由是.Rprofile中的任何代码都将在R启动时被采购和执行.
这个
.First<-function(){
library('devtools')
}
Run Code Online (Sandbox Code Playgroud)
还有这个
library('devtools')
Run Code Online (Sandbox Code Playgroud)
in .Rprofile具有完全相同的效果.
但是,这是一个显示的示例.首先可以有所作为:
例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"
Run Code Online (Sandbox Code Playgroud)
例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"
Run Code Online (Sandbox Code Playgroud)
谢谢!
这可能是不必要的,但它确实提供了另一个修改启动的地方。拥有它当然不会有什么坏处。
我通常在不同的目录中运行 R 以保持不同的东西;链接到通用 .Rprofile;并使用 .First 根据我正在处理的特定问题定制当前的 R 运行环境。如果 .First 操作不可用,我必须创建一个。