system2() を使用して R 内から単純な python スクリプトを呼び出そうとしています。「あまりにも多くの」メモリが使用されている場合、それは機能しないという漠然とした情報を読みました。
大規模なデータセットをロードし、その中の情報を引数として使用して system2() に渡す場合、Rstudio の呼び出しで「R の再起動」を手動でクリックした場合にのみ機能します。
私が欲しいもの:
df <- read.csv('some_large_file.csv')
###extracting some info called 'args_vec'
for(arg in args_vec){
system2('python', args)
}
このままではうまくいきません。for ループは単に渡されます。
必要なもの:
df <- read.csv('some_large_file.csv')
###extracting some info called 'args_vec'
###something that 'restarts' R
for(arg in args_vec){
system2('python', args)
}
この答えは、私が望むものを完全には得ていません。つまり、Rstudio 内では機能せず、「system」を呼び出します (この場合、「system2」と同じ問題が発生します)。実際、上記の回答を Rprofile.site ファイルに入力すると、すぐに rstudio が閉じられました。
「makeActiveBinding」を使用するのではなく、通常の関数として提案を試みましたが、うまくいきませんでした。
##restart R in r session -- doesn't work
makeActiveBinding("refresh", function() { system("R --save"); q("no") }, .GlobalEnv)
##nor did this:
refresh <- function() { system("R --save"); q("no") }
上記の 2 つのオプションのさまざまなバリエーションを試してみましたが、これは単純な質問のように思えて長くなりました。起動処理についてはまだわからないことが多く、「makeActiveBinding」がちょっと不思議です。誰かが私を正しい方向に向けることができますか?