我想使用以下行为创建一个名为my_package的R包:
library(my_package)
my_package::get_username() # should throw error "no username set"
my_package::set_username("john doe")
my_package::get_username() # should print "john doe"
我不知道该怎么做。我尝试在R文件test.R中使用以下内容并使用source('test.R')它可以工作。但我不知道在创建包时采用这种方法的正确方法是什么。
pkg_env <- new.env()
pkg_env$username <- NULL
set_username <- function(username) {
pkg_env$username <- username
}
get_username <- function() {
if (is.null(pkg_env$username)) {
print("ERROR")
} else {
print(pkg_env$username)
}
}
答案 0 :(得分:0)
执行所需操作的最简单方法是使用options
。例如,在devtools
中,您可以使用此technique设置各种选项 - package?devtools
如果要使用环境,则需要在加载包时使用.onLoad
函数