【问题标题】:Execute a function from package after doing library(pkg)执行库(pkg)后从包中执行函数
【发布时间】:2013-02-17 22:09:29
【问题描述】:

您好,我有一个带有 gWidgets gui 功能的包,有没有办法可以在包加载时执行它,以便界面立即出现。

我是这样想的:

.OnAttach <- function(libname, pkgname){
  gui()
}

会工作,但我仍在学习钩子、包加载和卸载期间的事件以及 R 环境的东西。

编辑:

这是我目前在我的 zzz 文件中的内容:

.onLoad <- function(libname = find.package("GspeEaR"), pkgname = "GspeEaR") {
  gui()
}

谢谢,

本·W.

【问题讨论】:

标签: r function load package


【解决方案1】:

我认为您想要 .onLoad 将其转储到名为 zzz.R 的 .R 文件中(传统上)。这是我使用过的示例:github.com/trinker/gmailR/blob/master/R/zzz.R

【讨论】:

  • 我刚刚尝试过,稍后我将不得不在我的 PC 上尝试它,因为我不确定这是否仅仅是因为我在工作时使用的是 Mac,但是当我构建时并在 RStudio 中重新加载:错误:'GspeEaR' 的 loadNamespace() 中的 .onLoad 失败,详细信息:调用:函数(类,fdef,mtable)错误:无法为签名“NULL”找到函数“.gwindow”的继承方法"' 错误:加载失败
  • 刚刚在我的电脑上试过,同样的错误发生了。这个错误超出了我的破译能力,我已经更新了我的问题,显示我目前在我的 zzz 文件中的内容。
  • @TylerRikner 为什么要这样定义.onload?我的意思是为什么要初始化参数?我已经使用了您的答案here,但它看起来不对。(请参阅上述链接中我的答案下方的哈德利评论)
  • 不确定。我希望看到 Hadley 扩展 .onload 的工作原理。 PS我不再在那个包中使用这个方法,你可以点击链接查看。这里有一点:r-bloggers.com/… 这是我对.onLoad 的首次介绍:stackoverflow.com/a/10508191/1000343 但我并没有真正使用它,所以可能会误解它。
  • @TylerRinker 谢谢。我只是在另一个问题中更新我的答案。再次感谢您的反馈。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-29
  • 1970-01-01
  • 2019-12-13
  • 1970-01-01
  • 1970-01-01
  • 2021-11-09
相关资源
最近更新 更多