将函数导入当前命名空间

dou*_*oug 40 r

假设我有一个由某些函数组成的R源文件,无论它们是什么,例如,

fnx = function(x){(x - mean(x))/sd(x)}
Run Code Online (Sandbox Code Playgroud)

我希望能够在我当前的R会话中访问它们(显然没有输入它们).如果库("/ path/to/file/my_fn_lib1.r")工作,那将是很好的,因为"import"在Python中工作,但事实并非如此.一个显而易见的解决方案是创建一个R包,但我想避免这种开销只是为了导入一些函数.

Sha*_*ane 52

使用该source()命令.在你的情况下:

source("/path/to/file/my_fn_lib1.r")
Run Code Online (Sandbox Code Playgroud)

顺便说一下,使用该package.skeleton()函数创建一个包相当容易(如果你打算经常重复使用它).

  • 截至 2020 年,在 R 中创建包的建议工具是:devtool、skeletal 还是其他? (2认同)