问题:使用相同的R文件,R终端的行为与Rstudio有所不同。
在R文件下多次运行时,在Rstudio中我得到了正确的行为。
使用[Rscript]从终端多次运行相同的R文件时:
期望的行为:
我需要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.
答案 0 :(得分:0)
通过评论的输入,我发现了2个可以解决该问题的问题。既是我作为问题发布的最小测试脚本,也是我的扩展脚本。
1)在开头添加[load('RData')],因为Rstudio和R终端之间的加载行为不同。每当您在Rstudio控制台中发送更改时,Rstudio都会动态更新全局环境。 R终端丢失了呼叫之间的会话,因此R终端需要R文件以[load('RData')]开头。
2)为了解决扩展的脚本,我发现本地[.Rprofile]在脚本末尾有一个[save.image('。RData)]。在[.Rprofile]中删除该命令时,它可以解决较大的脚本。