이것은 매우 기본적인 질문 일지 모르지만 설득력있는 답변을 아직 찾지 못했습니다. R 환경에서 R 스크립트를 실행할 때 source(foo.R)
또는 system("Rscript foo.R")
중 하나를 수행 할 수 있습니다. 두 가지 접근법 사이에 어떤 차이점이 있습니까? 그렇다면 두 가지 접근 방식을 어떻게 비교합니까?Rscript 대 출처 : 주요 차이점은 무엇입니까?
13
A
답변
14
그들은 근본적으로 효과가 다릅니다.
source("foo.R")
는"foo.R"
로부터 입력을하도록 현재 R 프로세스를 알려줍니다.system("Rscript foo.R")
는"foo.R"
의 콘텐츠가 평가되는 내 별도 R 프로세스를 실행하기 위해 운영 체제 명령을 사용한다.
Rscript
호출은 직접, 전혀 기본적으로 현재의 콘솔에서 다른 R 세션의 출력을 인쇄합니다 제외 을 현재 R 세션에 영향을 미치지 않습니다. (show.output.on.console=FALSE
을 설정하여 system()
전화에서이 기능을 사용 중지 할 수 있습니다.)
2
생각해 보면 source(foo.R)
은 현재 환경에 해당 파일의 소스 코드 (foo.R
)를 포함하고 있습니다. foo.R
내에 변수를 정의한 경우 x <- 5
라고 가정하고 현재 프로젝트에서 x <- 6
을 미리 정의하면 x
은 5
이됩니다.
system("Rscript foo.R")
은 foo.R
인수로 Rscript
프로그램을 실행하므로 현재 환경에는 전혀 영향을 미치지 않습니다.
2
@ Ramnath의 의견에 대한 답변 : sys.source("foo")
은 Rscript foo
과 같지 않습니다. 예를 들어, sys.source
로 다음을 수행 할 수 당신이 다음에 물건을하고 최종 결과를 반환 여러 중간 개체를 만드는 경우이 작업을 수행 할 수
e <- new.env()
sys.source("foo", e) # foo creates a bunch of objects in environment e
z <- with(e, {
# do stuff with e....
})
rm(e)
합니다. 중간 객체를 유지하고 싶지 않으므로 임시 객체를 임시 환경에 배치하면 한 번에 쉽게 제거 할 수 있습니다.
관련 문제
- 1. Pex 대 MsTest의 주요 차이점은 무엇입니까?
- 2. kmalloc과 vmalloc의 주요 차이점은 무엇입니까?
- 3. HTML과 XAML의 주요 차이점은 무엇입니까?
- 4. EnhancedPatternLayout과 PatternLayout의 주요 차이점은 무엇입니까?
- 5. 파이썬과 PHP의 주요 차이점은 무엇입니까?
- 6. JVM과 KVM의 주요 차이점은 무엇입니까?
- 7. 오이와 멘델의 주요 차이점은 무엇입니까?
- 8. mvc1과 mvc2의 주요 차이점은 무엇입니까
- 9. signcode.exe와 signtool.exe의 주요 차이점은 무엇입니까?
- 10. Backbone.js 대 Pusherapp - 차이점은 무엇입니까?
- 11. 시스템 대 ShellExecute - 차이점은 무엇입니까?
- 12. kohana 3.0.x와 3.1.0의 주요 차이점은 무엇입니까?
- 13. .net Async와 google의 주요 차이점은 무엇입니까
- 14. C++의 stdlib.h와 cstdlib의 주요 차이점은 무엇입니까?
- 15. 진화 알고리즘 '접근법'의 주요 차이점은 무엇입니까?
- 16. Asp.Net webApplication과 웹 사이트의 주요 차이점은 무엇입니까?
- 17. 웹 개발자가 주목해야하는 브라우저의 주요 차이점은 무엇입니까?
- 18. Adobe Flex와 Microsoft Silverlight의 주요 차이점은 무엇입니까?
- 19. Jetbrains의 MPS와 Eclipse Xtext의 주요 차이점은 무엇입니까?
- 20. NET Framework 3.5와 4.0의 주요 차이점은 무엇입니까?
- 21. 웹 서비스와 wcf의 주요 차이점은 무엇입니까?
- 22. C++과 C++ .NET의 주요 차이점은 무엇입니까?
- 23. Repa 2와 3 API의 주요 차이점은 무엇입니까?
- 24. SVN 클라이언트와 API 간의 주요 차이점은 무엇입니까?
- 25. OpenCobol과 NetExpress Microfocus Cobol의 주요 차이점은 무엇입니까?
- 26. CLTL2와 ANSI CL의 주요 차이점은 무엇입니까?
- 27. 코코아와 코코아 터치의 주요 차이점은 무엇입니까?
- 28. OpenCL/CUDA가 지원하는 GPU의 주요 차이점은 무엇입니까?
- 29. 프레임 워크와 툴킷의 주요 차이점은 무엇입니까?
- 30. 모든 MySQL 엔진의 주요 차이점은 무엇입니까?
'sys.source'와 같은 결과를 얻을 수 있습니까? 독립적 인 스크립트 집합을 실행할 때'Rscript '를 사용하는 것이 가장 유용하다는 것을 이해합니다. – Ramnath
'sys.source()'는'source()'와 매우 가깝습니다.'source '도움말 페이지는''능률적 인 버전''sys.source'를 호출합니다. 'sys.source'는 주로'library()'에 의해 사용되도록 설계되었습니다. 덕분에 –
. 이제는 모두 의미가 있습니다. – Ramnath