Подтвердить что ты не робот

Перезапустить R в Rstudio

Я пытаюсь вызвать простой 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" немного таинственен. Может ли кто-нибудь указать мне в правильном направлении?

4b9b3361

Ответ 1

В Rstudio вы можете перезапустить сеанс R:

command/ctrl + shift + F10 

Вы также можете использовать:

.rs.restartR()

Ответ 2

RStudio имеет этот недокументированный rs.restartR(), который должен делать именно это: перезапуск R.

Однако он не выгружает загруженные пакеты и не очищает среду, поэтому у меня есть некоторые сомнения в том, что она перезапускает R вообще.

Ответ 3

Пробовали ли вы встраивать вызов функции в функцию apply, а не в цикл for?

У меня были некоторые фрагменты кода, в которых система не использовалась для работы в цикле for, и отлично работает с приложением. Это может помочь?