我在.Rprofile文件中放置了一个函数,但它没有';当我加载R时,是否不显示?我不知道';我不明白为什么
我的.Rprofile文件如下所示:我在.Rprofile文件中放置了一个函数,但它没有';当我加载R时,是否不显示?我不知道';我不明白为什么,r,R,我的.Rprofile文件如下所示: # Will be run at the start of an R sesssion # ----------------------------------------- .First <- function(){ # Set the default CRAN CRAN <- "http://cran.ma.imperial.ac.uk/" # Load standard libraries library(H
# Will be run at the start of an R sesssion
# -----------------------------------------
.First <- function(){
# Set the default CRAN
CRAN <- "http://cran.ma.imperial.ac.uk/"
# Load standard libraries
library(Hmisc)
# My functions
# ------------
# R version of lookfor: `names(data)[grep('pattern',names(data))]`
lkf <- function(d,p) names(d)[grep(p,names(d))]
cat("\nWelcome at", date(), "\n")
}
# Will be run at the end of an R sesssion
# -----------------------------------------
.Last <- function(){
cat("\nGoodbye at ", date(), "\n")
}
我做错了什么?从
启动
接下来,如果在搜索路径上找到函数.First
,它将作为.First()
因此,与任何其他函数一样,lkf
将在函数的环境中创建,该环境在函数退出时被销毁
相反,您可以在外部定义lkf
lkf <- function(d,p) grep(p, names(d), value = TRUE)
.First <- function() {
[...]
}
谢谢。您是否愿意就R用户是否推荐我的方法发表评论?人们通常会编写一些助手函数,然后在R启动时加载吗?@drstevok我建议您构建自己的库,并在需要时使用它。当然。使用.Rprofile是非常常见的做法。但是,如果您计划共享您的代码,它可能会妨碍可复制的研究:想象一下,如果您向我们发送包含对lkf
调用的代码,我们将无法轻松访问其定义(.Rprofile是您的个人和隐藏文件。)。因此.Rprofile非常适合您只计划使用的东西,以使您的生活更轻松。@Tim谢谢。这是我听到的,但我不知道该怎么做。你有任何链接或指针吗?也许是一个示例包?
lkf <- function(d,p) grep(p, names(d), value = TRUE)
.First <- function() {
[...]
}