【问题标题】:General .onLoad function when loading a package加载包时的通用 .onLoad 函数
【发布时间】:2015-11-20 07:57:22
【问题描述】:

是否有一个可以在加载包时调用的钩子?我想在加载包时运行utils::rtags(path.package('somePackage'), recursive=TRUE, ofile='someFile')。是否已经有一个功能/挂钩可以让我这样做? (FWIW 我正在使用 ESS,所以如果那里有一个钩子也可以工作)。

【问题讨论】:

  • 也许 ?packageEvent?setHook 取决于你所说的“a”包?
  • 似乎是编译后的包(path.package('somePackage') 将指向您,这将仅使用有限。(尝试使用path.package("base"),然后在文本编辑器中打开"someFile"看看我的意思。)

标签: r package


【解决方案1】:

据我所知,没有通用的“onLoad”方法,所以我求助于 对以下各项使用setHook

sprintf("UserHook::%s::onLoad", dir(Sys.getenv("R_LIBS")))

setHook('xxx', value=myFunction, 'append') 一样,其中xxx 是上面返回的每个值。

【讨论】:

  • 我会使用inst = rownames(installed.packages(.libPaths())) 的一些变体而不是dir()packageEvent()(可能在包含setHook() 的for 循环中)而不是sprintf();这些似乎更多地依赖于 API,而不是“知道”R 在做什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-14
  • 2012-04-24
  • 2018-02-09
  • 2021-08-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多