在R中创建用户创建的函数

stu*_*pie 15 r function user-defined

如果之前有人问过我很抱歉,但我找不到答案.

假设我在R中写了一个小函数

add2<-function(a){
return(a+2)
}
Run Code Online (Sandbox Code Playgroud)

我将其保存为我的主目录(或任何目录)中的add2.R.我怎样让R找到它?

> add2(4)
Error: could not find function "add2"
Run Code Online (Sandbox Code Playgroud)

我知道我可以打开脚本,将其复制/粘贴到控制台中,运行它,然后它就可以了.但是如何让它内置,所以如果我打开和关闭R,它仍然在没有我复制并粘贴它的情况下运行?

Jos*_*ien 17

一个轻量级选项:

dump("add2", file="myFunction.R")

## Then in a subsequent R session
source("myFunction.R")
Run Code Online (Sandbox Code Playgroud)

替代:

save("add2", file="myFunction.Rdata")

## Then just double click on "myFunction.Rdata" to open  
## an R session with add2() already in it 

## You can also import the function to any other R session with
load("myFunction.Rdata")
Run Code Online (Sandbox Code Playgroud)

在您准备将函数打包到您自己的私有软件包之前,将它们存储在组织良好source()的文本文件中(如上面的第一个示例中)可能是最好的策略.有关经验丰富的用户如何将此方法付诸实践的一些示例,请参阅此高度投票的SO问题.