HOWTO · R

명령줄에서 R 스크립트 실행하기

Rscript로 터미널이나 명령 프롬프트에서 R 스크립트를 실행하고, 인수를 전달하고, cron 작업을 예약하고, Git으로 스크립트를 관리하는 방법을 알아봅니다.

이 페이지의 내용

터미널이나 명령 프롬프트에서 R 스크립트를 실행하려면 코드를 파일로 저장한 뒤 Rscript path/to/script.R로 실행합니다. R이 설치되어 있어야 하며, 셸이 PATH를 통해 Rscript를 찾을 수 있어야 합니다. 찾지 못하면 실행 파일의 전체 설치 경로를 사용하세요. 이 방법은 반복 가능한 분석, 입력을 받는 스크립트, 예약 작업에 유용합니다.

Rscript란?

Rscript는 스크립트 파일이나 직접 전달한 명령에 있는 R 코드를 실행하는 명령줄 프로그램입니다. 파일이나 명령에 작성된 작업을 처리한 뒤 프로세스가 종료되므로 비대화형 작업에 적합합니다. 반면 대화형 R 세션에서는 명령을 입력하고 실행하면서 결과를 살펴볼 수 있습니다.

R을 설치하면 Rscript도 함께 설치됩니다. macOS나 Linux에서는 터미널을, Windows에서는 명령 프롬프트나 PowerShell을 열고 Rscript --version으로 명령을 사용할 수 있는지 확인하세요. 셸에서 명령을 찾지 못한다고 나오면 R을 설치하거나 R과 함께 설치된 실행 파일을 찾아 전체 경로로 실행하세요. 설치 디렉터리는 운영체제와 설치 방식에 따라 다르므로 다른 컴퓨터에서 복사한 특정 버전의 경로에 의존하지 마세요.

Rscript로 R 스크립트 실행하기

이 간단한 예제를 mean.R이라는 파일로 저장하세요. 명령줄에서 숫자를 전달하면 그 값을 사용하고, 전달하지 않으면 내장된 숫자 집합을 사용합니다. 따라서 아래와 같이 실행하거나 다른 값에 맞게 수정할 수 있습니다.

args <- commandArgs(trailingOnly = TRUE)
numbers <- if (length(args) > 0) as.numeric(args) else c(1, 2, 3, 4, 5)
cat("Mean: ", mean(numbers), "\n", sep = "")

기본 입력에서는 코드가 1부터 5까지의 숫자를 사용합니다. 코드를 살펴보면 Mean: 3을 출력할 것으로 예상되며, 이 예제는 실제로 실행해 검증하지 않았습니다. 예제의 출력 레이블 Mean은 변경할 수 없는 코드와 출력 블록에 그대로 들어 있으므로 영어로 표시됩니다.

파일이 있는 디렉터리에서 Rscript mean.R로 실행하세요. 다른 디렉터리에서 실행하려면 Rscript /path/to/mean.R처럼 스크립트 경로를 지정하면 됩니다. Windows에서 공백이 포함된 경로는 Rscript "C:/Users/Ada/My Scripts/mean.R"처럼 따옴표로 묶으세요. 경로 표기는 사용 중인 셸에서 허용하는 형식을 따릅니다. Rscript가 PATH에 없다면 명령어 자리에 실행 파일의 전체 경로를 입력하되, 스크립트 경로는 별도의 인수로 지정하세요.

저장 파일이 필요 없는 짧은 표현식은 POSIX 계열 셸이나 PowerShell에서 -e 옵션으로 실행할 수 있습니다. 예를 들어 Rscript -e 'mean(iris$Sepal.Length)'와 같이 입력합니다. 이 작은따옴표 형식은 작은따옴표를 문자 그대로 처리하는 Windows 명령 프롬프트에서는 사용할 수 없습니다. 명령 프롬프트에서는 위의 저장 스크립트 예제를 사용하세요. iris 데이터 세트는 기본 R 설치에 포함되어 있습니다. --help와 --version 옵션은 각각 명령 도움말과 버전 정보를 요청하고, --verbose는 더 자세한 명령 출력을 요청합니다. 호출 방법을 확인하거나 실행 문제를 진단할 때 유용합니다. -e는 하이픈 하나로 시작하므로 모든 옵션이 하이픈 두 개로 시작하는 것은 아닙니다.

R 스크립트에 인수 전달하기

스크립트는 commandArgs(trailingOnly = TRUE)로 파일 이름 뒤에 전달된 값을 읽을 수 있습니다. 위 예제는 전달된 각 인수를 숫자로 변환해 평균을 계산합니다. 예를 들어 Rscript mean.R 10 20 30은 세 값을 각각 별도의 인수로 전달합니다. 입력값에 공백이 포함되면 셸에서 해당 값을 따옴표로 묶어 하나의 인수로 전달하세요. 스크립트가 기대하는 입력 형식을 명확히 하고, 숫자가 아닌 데이터를 사용한다면 변환과 유효성 검사를 그에 맞게 조정하세요.

cron 작업으로 R 스크립트 예약하기

Unix 계열 시스템에서는 cron으로 스크립트 실행을 예약할 수 있습니다. crontab -e로 사용자 crontab을 편집한 다음 0 2 * * * /usr/bin/Rscript /path/to/report.R와 같은 항목을 추가하면, 컴퓨터의 cron 설정에 따라 매일 오전 2시에 실행하도록 요청할 수 있습니다. 실행 파일과 스크립트 경로는 예시이므로 작업을 실행할 컴퓨터의 실제 경로를 사용하세요.

예약 작업은 대화형 셸과 다른 작업 디렉터리와 환경에서 시작될 수 있습니다. 실행 파일, 스크립트, 입력 파일, 출력 파일에는 절대 경로를 사용하고, 예약 실행을 진단해야 한다면 작업의 출력이나 오류가 저장되도록 설정하세요. cron은 Unix 계열 시스템의 예약 방식입니다. Windows에서는 시스템의 작업 스케줄러를 사용할 수 있습니다.

버전 관리를 위해 R과 Git 통합하기

Git은 R 스크립트와 관련 프로젝트 파일의 변경 사항을 추적하므로 수정 내용을 검토하거나 이전 버전으로 되돌리기 쉽습니다. Git은 선택 사항이며 Rscript로 스크립트를 실행하는 데 필요하지 않습니다. 프로젝트 디렉터리에서 git init으로 저장소를 초기화하고, 추적할 파일을 git add로 추가한 뒤, git commit으로 스냅샷을 기록하세요. 커밋할 항목을 확인하고, 생성된 데이터나 자격 증명이 프로젝트 기록에 포함되어야 하는 경우가 아니라면 추가하지 마세요.

마무리

코드를 R 파일로 저장한 다음 Rscript와 스크립트 경로를 지정해 실행하세요. R이 설치되어 있고 셸에서 실행 파일을 찾을 수 있는지 확인하고, 필요한 경우 경로를 따옴표로 묶은 뒤 파일 이름 다음에 입력값을 전달하세요. 반복 작업에는 해당 환경에 맞는 경로를 사용해 예약 작업을 설정하고, 스크립트 변경 사항을 추적하려면 Git을 사용하세요.

자주 묻는 질문

  1. R과 Rscript는 어떻게 설치하나요?
    운영체제별 설치 안내에 따라 R을 설치하세요. Rscript는 R에 포함되어 있으므로 이 작업 흐름에서는 별도로 설치할 필요가 없습니다.

  2. Windows에서 R 스크립트를 실행할 수 있나요?
    네. 실행 파일이 PATH에 있다면 명령 프롬프트나 PowerShell에서 Rscript script.R을 실행하세요. 그렇지 않으면 설치된 실행 파일의 전체 경로를 지정하세요. 공백이 포함된 경로는 해당 셸의 따옴표 규칙에 맞게 묶으세요.

  3. Rscript와 R의 차이는 무엇인가요?
    Rscript는 명령줄에서 스크립트나 표현식을 실행하는 용도입니다. R 명령은 보통 대화형 세션을 시작하며, 작업하면서 명령을 입력하고 결과를 살펴볼 수 있습니다.

  4. 설치된 Rscript의 버전은 어떻게 확인하나요?
    터미널이나 명령 프롬프트에서 Rscript --version을 실행하세요. 명령을 PATH에서 찾을 수 있어야 하며, 그렇지 않으면 전체 경로로 실행해야 합니다.

  5. 여러 R 스크립트를 차례로 실행하려면 어떻게 하나요?
    Unix 계열 셸에서는 Rscript first.R && Rscript second.R처럼 &&로 명령을 연결하세요. 첫 번째 명령이 성공한 경우에만 두 번째 명령이 실행됩니다. 더 긴 작업은 셸 스크립트나 시스템에 맞는 다른 예약 도구에 실행 명령을 넣으세요.