我的环境变量$R_HISTFILE
指向/home/my.username/.RHistory
,以及我主目录中.Rprofile
的以下代码:
.Last <- function() {
if (!any(commandArgs()=='--no-readline') && interactive()){
require(utils)
try(savehistory(Sys.getenv("R_HISTFILE")))
}
}
每当我打开R,我做history()
时,我都看不到我在之前会话中输入的命令。此外,文件.RHistory
几乎是空的,只有三行,(根本不反映我过去输入的命令)。
如何在R会话中自动保存命令历史记录?
答案 0 :(得分:3)
您是如何设置环境变量的?您应该可以将其放在.Renviron
文件中。
要确保正确设置环境变量,请确认这会为您提供“/home/my.username/.RHistory”
$ R --slave -e 'Sys.getenv("R_HISTFILE")'
否则,您是否使用R
或类似情况开始--vanilla
?当你启动R时,你在你的主目录中吗?
它对我有用:
gMac:~ garrett$ R_HISTFILE=~/.RHistory R --vanilla -q
> .Last <- function() {
+ if (!any(commandArgs()=='--no-readline') && interactive()){
+ require(utils)
+ try(savehistory(Sys.getenv("R_HISTFILE")))
+ }
+ }
> a <- 5
> b <- 10
> q()
gMac:~ garrett$ R_HISTFILE=~/.RHistory R -q
> history()
给我一个包含以下内容的文件:
.Last <- function() {
if (!any(commandArgs()=='--no-readline') && interactive()){
require(utils)
try(savehistory(Sys.getenv("R_HISTFILE")))
}
}
a <- 5
b <- 10
q()
history()
如果所有其他方法都失败了,您可以将loadhistory(Sys.getenv("R_HISTFILE"))
放入{。{1}}的.Rprofile中。