system2()를 사용하여 R 내에서 간단한 파이썬 스크립트를 호출하려고합니다. 내가 '너무 많은'메모리가 사용되면 작동하지 않는다고 말하는 막연한 정보를 읽었습니다.Rstudio 내에서 R 다시 시작
큰 데이터 세트를로드하고 그 중 일부 정보를 인수로 사용하여 system2()로 전달하면 Rstudio 호출에서 수동으로 "Restart 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 내에서 작동하지 않으며 "시스템"(이 경우 "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가"있다 누구도 올바른 방향으로 나를 가리킬 수 있습니까?
정말 전체 R을 다시 시작해야합니까? 작업 공간을 지우는'rm (list = ls()) '을 사용하고'gc()'를 이용한 수동 가비지 콜렉션을 사용한다면 충분할 것인가? –
@BenHunter 다시 시작한 후에'q'를 호출하기 때문에 RStudio가 바로 닫힙니다. 'q'를 호출하면 RStudio에서 Restart R을 선택하는 것과 똑같이해야합니다. –
@Hemmo, 나는 이것이 옵션이라는 것을 알고 있으며,이 경우에는 좋은 선택이 될 수 있지만, 나는 이것을 해결하는 방법을 알고 싶다. 내 작업 공간을 잃지 않고 (또는 저장하고, 제거하고 다시로드하는 일없이) 그것). –