【发布时间】:2020-08-31 00:57:31
【问题描述】:
回答此问题的标准
给定以下函数(在其自己的脚本中)
# something.R
hello <- function(x){
paste0("hello ", x)
}
启用以下功能的最少设置量是多少
library(something)
x <- something::hello('Sue')
# x now has value: "hello Sue"
上下文
在python中,拥有一个包含一些代码的目录非常简单,并将其用作
# here foo is a directory
from foo import bar
bar( ... )
我不确定如何在 R 中做类似的事情。
我知道有source(file.R),但这会将所有内容都放入全局命名空间中。我也知道有library(package) 提供package::function。我不确定是否有一种简单的方法可以在 R 中使用这种命名空间。我搜索过的打包教程似乎非常复杂(与 Python 相比)。
【问题讨论】:
-
@baxx;
sys.source("something.R", envir = something<-new.env()); something$hello("Sue") -
@user20650 我对使用
script::function()语法所需的最少代码量感兴趣,并且仍然希望看到这一点。但是,sys.source绝对有用,可能为我解决了眼前的问题,谢谢。 -
要么使用 source() 获取文件,要么创建包。你不需要在 R 中导入和命名空间文件。但是创建一个包很容易,而且真的不值得尝试解决它。
-
如果我理解正确 - 创建一个包很容易,但过于冗长,无法粘贴到 stackoverflow 答案中
-
你认为这是矫枉过正,因为你没有尝试过,但我向你保证,你的包上面的功能是 40 秒的工作
标签: r package setup-project