R:如何在加载包时运行一些代码?

xia*_*dai 35 r r-package

我正在学习为R构建一个包.现在要设置它,我需要在加载包时运行一些代码require(myPackage).

我阅读的文档help(".onLoad")只是让我感到困惑,因为没有例子.我如何实际使用.onLoad

有人能告诉我一个简单的例子吗?例如,我知道export(myfun)在NAMESPACE文件中将导出myfun以供使用,我需要rnorm(10)在包加载时运行的代码是什么?

ags*_*udy 38

通常有一个"处理函数"(传统上称为zzz.R),在加载包时要执行任务,例如加载库和编译代码.例如,您可以创建一个zzz.R文件来创建此函数:

.onLoad <- function(libname, pkgname){
  x <- rnorm(10)   ## dummy example 
}
Run Code Online (Sandbox Code Playgroud)

  • @drj3122 不,答案完全错误;这段代码*从来没有*工作过。但你的代码也不正确,不要将数据写入全局环境。您想要将数据写入*package*环境中。为此,您需要使用“topenv()”而不是“.GlobalEnv”。请参阅 /sf/answers/4736539671/。 (5认同)
  • 例如,dplyr程序包使用在[zzz.r文件]中可见的.onLoad函数。 (2认同)