Ответ 1
В Rstudio вы можете перезапустить сеанс R:
command/ctrl + shift + F10
Вы также можете использовать:
.rs.restartR()
Я пытаюсь вызвать простой python script из R с помощью system2(). Я прочитал некоторую информацию, которую я счел расплывчатой, что сказал, что если используется "слишком большая" память, это не сработает.
Если я загружаю большой набор данных и использую некоторую информацию в нем для использования в качестве аргументов для перехода в system2(), он будет работать, только если я вручную нажму "Перезапустить R" в вызове Rstudio.
Что я хочу:
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, и он вызывает "систему" (в данном случае такая же проблема, как и "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") }
Я попробовал несколько вариантов этих двух вариантов выше, но это уже слишком долго для того, что кажется простым вопросом. Там много я еще не понимаю о процессе запуска, и "makeActiveBinding" немного таинственен. Может ли кто-нибудь указать мне в правильном направлении?
В Rstudio вы можете перезапустить сеанс R:
command/ctrl + shift + F10
Вы также можете использовать:
.rs.restartR()
RStudio имеет этот недокументированный rs.restartR()
, который должен делать именно это: перезапуск R.
Однако он не выгружает загруженные пакеты и не очищает среду, поэтому у меня есть некоторые сомнения в том, что она перезапускает R вообще.
Пробовали ли вы встраивать вызов функции в функцию apply, а не в цикл for?
У меня были некоторые фрагменты кода, в которых система не использовалась для работы в цикле for, и отлично работает с приложением. Это может помочь?