繁体   English   中英

在软件包安装过程中向.First()添加行

[英]Adding line to .First() during package installation

我正在为我的公司设计R包,但他们不是那么精通技术的员工。

为了简化用户的生活,我考虑在全球范围内拥有一组脚本,这些脚本可以在启动时获取,以更新和加载相关软件包。

我的想法是为每个自定义程序包创建一个脚本,该脚本仅在安装了特殊程序包的情况下才会获得源代码。 为此,我需要在用户安装其他软件包时(例如在安装软件包A之后)修改.First()函数:

.First() <- function(){
    source('script_to_package_A')
}

并且然后安装了软件包B:

.First() <- function(){
    source('script_to_package_A')
    source('script_to_package_B')
}

因此,如果已经定义了.First()且该行尚不在其中,或者如果不存在.Rprofile,则可以在.Rprofile文件中添加一行。

实现这一目标的最佳方法是什么?

最好的祝福托马斯

编辑:只是为了澄清-我正在寻找的是一种安全的方法来修改在启动过程中被调用的.First()函数。 这意味着,如果用户已经定义了.First()函数,则只会添加附加内容,而不是替换旧的.First()。 最好是在安装特定的软件包时首先进行添加,但这不是必需的。 我对添加到.First()函数中的内容非常有信心,因此这不是问题。

我怀疑获得所需内容的最简单方法是在所有计算机上安装一个软件包。 如果可以在每个人的计算机上更改.First函数,则可以安装软件包。

您的.First函数将是:

.First() <- function(){
    library(mypkg)
    run_mypkg_fun()
    ##Could also check for package updates
    ##update.packages("mypkg"...)
}

函数run_mypkg_fun可以执行所有所需的检查,包括:

  • 安装软件包
  • 根据安装的内容运行不同的功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM