2011-09-08 42 views
17

在R中,我喜欢使用反向搜索(ctrl + r)重做不经常使用脚本的复杂命令。通常,我会在命令历史丢弃旧命令之间执行许多其他命令。如何更改命令历史记录的默认长度?如何增加R中命令历史的长度?

+1

什么平台?什么接口? –

回答

7

这是平台和控制台特定的。从帮助?savehistory

有适用于不同的R 控制台几个历史机制,相似但不相同的方式工作,其...

...

历史机制由两个环境变量控制: R_HISTSIZE控制保存的行数(缺省值为512), 和R_HISTFILE设置用于加载/保存 历史记录的文件名(如果在会话的开始/结束时被请求) 012这些功能默认为)。在会话期间历史记录的行数 没有限制,因此将R_HISTSIZE设置为较大的值 不会有任何损失,除非实际生成大文件。

所以,从理论上讲,你可以读取和设置R_HISTSIZE有:

Sys.getenv("R_HISTSIZE") 
Sys.setenv(R_HISTSIZE = new_number) 

但是,在实践中,这可能会或可能不会有任何影响。

又见?Sys.setenv?EnvVar

2

查看history()的帮助页面。这显然是由环境变量R_HISTSIZE设置的,因此您可以使用Sys.setenv(R_HISTSIZE = XXX)为会话进行设置。我仍在深入挖掘,找出所有R会话的默认行为,但大概与.Startup或您的R配置文件有关。

2

?历史

“有可用于不同的R 控制台几个历史机制,相似但不完全相同的方式,其工作。”

此外,在同一设备中甚至可能有两个历史记录机制。我有从控制台保存的.history文件,Mac R GUI拥有自己的独立系统。您可以在“首选项”面板中增加GUI管理的历史记录条目的数量。

有一个渐进的历史包: http://finzi.psych.upenn.edu/R/library/track/html/track.history.html