我为我的项目编写了一堆函数,供用户以交互方式调用。
现在我想让他们安全地参加会议。
我想避免用户输入rm(list=ls())
并从内存中删除我的函数的情况。
最初我尝试将功能保存到另一个环境并将该环境附加到搜索路径,但是在我更改内容的过程中,R
无法再找到我的功能。
我的代码分为多个文件,但下面的代码段说明了事情的组织方式,通常用户会运行app.R
,因为它包含对其他文件,配置等的引用:
./ funs.R
id.mapping.env <- new.env(parent = emptyenv())
attach(id.mapping.env)
id.mapping.env$test_function<- function() {
print("It works")
}
./ app.R
source("./funs.R")
test_function
如果我运行app.R,我会收到错误:
错误:找不到函数“test_function”
为什么R不能找到我的功能?我是否必须编写自己的包以确保可以找到我的所有功能? 我不熟悉编写软件包,如果需要,你可以给我一个小小的演示/教程(我现在正在谷歌搜索)。