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