打开 RStudio 项目时自动运行 R 代码

问题描述 投票:0回答:3

我在另一个问题中编写了一个 R 函数来更新包的版本号。我经常使用 GitHub 和 RStudio,如果每次我打开某个项目时都会自动运行此函数(或者更好的是进行 git commit/push,但我认为这更难做到)。但我不知道该怎么做或者这是否可能。

我可以使用

.Rprofile
在每次启动
R
时运行 R 代码,这样我就可以在每次启动 R 时更新版本(或者内置它仅在日期不是今天或其他情况时才更新版本),但是似乎有点过分了。

r rstudio
3个回答
10
投票

您可以为每个项目单独制作一个

.Rprofile
。你必须把它放在项目的主目录中(http://www.rstudio.com/ide/docs/using/projects)。


4
投票

我会用

.Rprofile
来实现这一点。有一点值得一提的是,它独立于你周围的工具链:knitr 在 RStudio 中也能工作,没有它也能工作,dito 对于 Rcpp/RInside 等也能工作。

您可以挂钩到 svn 的提交挂钩,既可以通过后端的挂钩显式地挂钩,也可以只是在末尾添加包装器脚本。我想你也可以用 git 做同样的事情,但我对它知之甚少。因此,为了将其抽象出来,我会为自己编写一个“commitThis”或“pushThis”或...函数,用于执行数字增量、测试运行、代码推送等操作。


1
投票

如果您的代码需要 RStudio 已经运行(例如,因为它依赖于某些

rstudioapi::
函数),则直接将其放入
.Rprofile
中将不起作用(
.Rprofile
在 RStudio 可用之前执行)。

相反,您可以为 "rstudio.sessionInit"

 设置 hook:

setHook(
  hookName = "rstudio.sessionInit",
  value = function(newSession) {
    if (newSession) {
      # your code goes here
    }
  },
  action = "append"
)
© www.soinside.com 2019 - 2024. All rights reserved.