[r] 명령 행에서 R 스크립트 실행

라는 파일 a.r이 있는데 chmod755입니다.

sayHello <- function(){
   print('hello')
}

sayHello()

명령 줄을 통해 어떻게 실행할 수 있습니까?



답변

출력을 터미널에 인쇄하려면 Rscript를 사용하는 것이 가장 좋습니다

Rscript a.R

참고 사용하는 경우 그 R CMD BATCH a.R대신에 표준 출력에 출력을 리디렉션 및 a.Rout라는 터미널 새 파일에 표시하는 만들어집니다.

R CMD BATCH a.R
# Check the output
cat a.Rout

Rscript를 사용할 때주의해야 할 또 다른 사항은 methods기본적으로 패키지를 로드하지 않아 혼동 될 수 있다는 것입니다. 따라서 메소드가 제공하는 것에 의존하는 경우 스크립트에 명시 적으로로드 할 수 있습니다.

./a.R스크립트를 호출 하는 방법 을 실제로 사용하려면 스크립트 #!상단에 적절한 것을 추가 할 수 있습니다

#!/usr/bin/env Rscript
sayHello <- function(){
   print('hello')
}

sayHello()

나는 또한 당신이 * UNIX 시스템에서 실행하는 경우 유용한 있음을 유의한다 의 littler 스크립트를 통해 반짝 응용 프로그램을 실행하는 데의 littler 사용할 필요가있을 수 있습니다 R.에 쉽게 명령 줄 배관을 제공하는 패키지? 자세한 내용은 이 질문에서 찾을 수 있습니다 .


답변

이것은 질문에 직접 대답하지 않습니다. 그러나 누군가 터미널에서 R의 oneliner를 실행하기를 원하기 때문에 여기에 올 수 있습니다. 예를 들어 누락 된 패키지를 설치하고 종료하려는 경우이 oneliner가 매우 편리 할 수 ​​있습니다. 패키지를 놓친 것을 갑자기 발견하고 원하는 곳에 설치하고 싶습니다.

  • 기본 위치에 설치하려면

    R -e 'install.packages(c("package1", "package2"))'
  • root권한 이 필요한 위치에 설치하려면

    R -e 'install.packages(c("package1", "package2"), lib="/usr/local/lib/R/site-library")' 

답변

명령 행에서 R 스크립트를 실행하는 또 다른 방법은 다음과 같습니다.

R < scriptName.R --no-save  

나와 --save.

명령 줄 (터미널)에서 R 스크립트를 사용하는 가장 좋은 방법무엇입니까?를 참조하십시오 . .


답변

?Rscript터미널에서 R 스크립트를 실행 하려면 명령 이 필요합니다 .

http://stat.ethz.ch/R-manual/R-devel/library/utils/html/Rscript.html을 확인 하십시오.

## example #! script for a Unix-alike

#! /path/to/Rscript --vanilla --default-packages=utils
args <- commandArgs(TRUE)
res <- try(install.packages(args))
if(inherits(res, "try-error")) q(status=1) else q()


답변

여러 명령으로 knitr 및 rmarkdown을 사용하여 명령에서 Rmd를 실행 한 다음 RPub에 HTML 파일을 업로드하는 방법

예제는 다음과 같습니다. 두 개의 라이브러리를로드하고 R 명령을 실행하십시오.

R -e 'library("rmarkdown");library("knitr");rmarkdown::render("NormalDevconJuly.Rmd")'

R -e 'library("markdown");rpubsUpload("normalDev","NormalDevconJuly.html")'


답변

* Unix 시스템에서 Rscript를 사용하는 또 다른 방법은 프로세스 대체 입니다.

Rscript <(zcat a.r)
# [1] "hello"

허용되는 답변과 똑같이 작동하지만 명령 줄의 힘을 저장하지 않고 파일을 조작하고 실행할 수 있습니다.

Rscript <(sed s/hello/bye/ a.r)
# [1] "bye"

Rscript -e "Rcode"그것과 유사하게 파일로 저장하지 않고 실행할 수 있습니다. 따라서 R 코드를 생성하는 스크립트와 함께 사용할 수 있습니다. 예 :

Rscript <(echo "head(iris,2)")
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 1          5.1         3.5          1.4         0.2  setosa
# 2          4.9         3.0          1.4         0.2  setosa


답변

문서화를 위해 때로는 다음과 같이 스크립트를 실행해야합니다 sudo.

sudo Rscript path/to/your/file.R