[英]Adding and accessing package files to a new R package
我在RStudio v.1.0.1.153中创建了一个新项目作为“ R包”。 默认情况下,这样的新R包项目随附文件hello.R
其中包含模板函数
hello <- function() {
print("Hello, world!")
}
可以通过构建并重新加载程序包(Ctrl + Shift + B)进行访问,然后在另一个R会话中,只需加载构建的程序包并运行函数即可:
> library(mylibrary)
> hello()
[1] "Hello, world!"
现在,我想将我的功能组织到软件包中的几个文件中。 我使用另一个功能将新的methods.R
文件添加到包的.\\R\\
子目录中:
helloYouToo <- function() {
print("Hello you too!")
}
但是,当我重建软件包并重新加载库时,无法访问该函数:
> library(mylibrary)
> helloYouToo()
Error in helloYouToo() : could not find function "helloYouToo"
我有一些问题。 我该怎么办
hello.R
文件),以便文件和在其中定义的函数包含在包中,并且 methods.R
)? 正如@MrFlick所建议的那样,我通过安装devtools
和roxygen
(带有依赖项)设法将功能拆分为几个文件。
之后,重建软件包使其他文件中的新功能可供加载该软件包的用户使用。 但是,必须重新启动R会话才能使更新的功能定义可用:
Restarting R session...
> library(mylibrary)
> helloYouToo()
[1] "Hello you too!"
甚至可以在包中定义一个函数,该函数使用在两个单独的文件中定义的函数:
helloDouble <- function() {
hello()
helloYouToo()
}
导致
Restarting R session...
> library(mylibrary)
> helloDouble()
[1] "Hello, world!"
[1] "Hello you too!"
我不需要触摸NAMESPACE文件,因为它与
exportPattern("^[[:alpha:]]+")
允许我在软件包中创建的所有新功能可供软件包用户使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.