gpt4 book ai didi

r - 跨 session 自动保存 R 中的历史记录

转载 作者:行者123 更新时间:2023-12-04 05:12:20 25 4
gpt4 key购买 nike

我有一个环境变量 $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()我看不到我在早期 session 中输入的命令。此外,文件 .RHistory几乎是空的,只有三行,(根本没有反射(reflect)我过去输入的命令)。

如何在 R session 中自动保存我的命令历史记录?

最佳答案

你是怎么设置环境变量的?你应该可以把它放在你的 .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")).First在您的 .Rprofile 中。

关于r - 跨 session 自动保存 R 中的历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14757743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com