2

私のホームディレクトリには、次のコードを$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はほとんど空で、3 行しかありません (過去に入力したコマンドはまったく反映されていません)。

R セッション全体でコマンドの履歴を自動的に保存するにはどうすればよいですか?

4

1 に答える 1

3

環境変数をどのように設定しましたか?.Renvironファイルに入れることができるはずです。

環境変数が正しく設定されていることを確認するには、「/home/my.username/.RHistory」が表示されることを確認してください。

$ R --slave -e 'Sys.getenv("R_HISTFILE")'

それ以外の場合は、または類似のものから始めRていますか? --vanillaR を起動するとき、ホーム ディレクトリにいますか?

わたしにはできる:

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()

他のすべてが失敗した場合は、.Rprofileloadhistory(Sys.getenv("R_HISTFILE"))に入れることができます。.First

于 2013-02-07T23:41:44.630 に答える