Rscript-使用相同的R文件,与Rstudio

时间:2018-11-10 21:01:42

标签: r rstudio rscript

问题:使用相同的R文件,R终端的行为与Rstudio有所不同。

在R文件下多次运行时,在Rstudio中我得到了正确的行为。

  • 首次运行[count = 20],其余运行[count = 1]。

使用[Rscript]从终端多次运行相同的R文件时:

  • 首次运行[count = 20],其余运行[count = 20]。

期望的行为:

我需要R终端的行为与R studio相同,创建具有值[20]的计数器,并在其余时间将其设置为值[1]。

我的环境:

Ubuntu Linux 18.04

R-studio:1.1.453

端子(Bash 4.4.19,R v.3.4.4)

R文件的内容

setwd ("/tmp-r") # Set working directory.

# Set [count] to 20 if [count] does not exists.
# Set [count] to 1 if [count] exists.
if (!exists('count')) {
  count <- 20
} else {
  count <- 1
}

save.image() # Save.

1 个答案:

答案 0 :(得分:0)

通过评论的输入,我发现了2个可以解决该问题的问题。既是我作为问题发布的最小测试脚本,也是我的扩展脚本。

1)在开头添加[load('RData')],因为Rstudio和R终端之间的加载行为不同。每当您在Rstudio控制台中发送更改时,Rstudio都会动态更新全局环境。 R终端丢失了呼叫之间的会话,因此R终端需要R文件以[load('RData')]开头。

2)为了解决扩展的脚本,我发现本地[.Rprofile]在脚本末尾有一个[save.image('。RData)]。在[.Rprofile]中删除该命令时,它可以解决较大的脚本。