[링크] Github에서 보기

[링크] 소스코드 다운받기

예제코드 다운로드 및 실행

Github 사이트에 접속 해서 전체 소스가 압축된 파일을 다운 받거나, git clone 명령어를 이용해 소스 코드를 받을수 있습니다.

Bulb 서버에 접속 후 아래 명령어를 실행하면, 해당 소스코드를 다운 받을 수 있습니다.

Bulb 서버가 아닌 곳에서도 git이 설치되어 있다면, git clone 명령어를 통해 소스코드를 다운로드 받을 수 있습니다.

$  git clone https://github.com/sp-edison/octave_example_input1.git

다운로드가 완료되면, r_example_input1 폴더가 생성됩니다. 폴더 구성은 다음과 같습니다.

r_example_input1
│   README.md
│   simrc
└───run.r

실행하기

source 명령어를 통해 simrc에 있는 명령어를 실행합니다.

simrc에는 R 모듈을 추가하는 명령어가 있습니다.

$ source simrc

R의 경우 Script를 실행하는 형태로 별다른 컴파일 과정이 필요 없습니다. 하지만 리눅스 명령어 chmod 명령어를 이용해 실행 권한을 주어야 합니다. run.r가 실행 파일인 경우 chmod +x run.r 를 리눅스 상에서 실행하면 됩니다.

$ chmod +x run.r
$ ./run.r -i /home/ino/test.input
input file = /home/ino/test.input

Source Code

simrc

module load R/3.3.2

module load 명령어를 통해 R 모듈을 추가합니다.

run.r

#!/usr/bin/env Rscript


library(optparse)

option_list <- list (
    make_option(c("-i","--inp"), type='character', help="Input file path", default=NULL ,metavar="character")
);

opt_parser <- OptionParser(option_list=option_list);
opt <- parse_args(opt_parser);

if (is.null(opt$inp)){
      print_help(opt_parser)
  stop("At least one argument must be supplied (input file).n", call.=FALSE)
}

inputfile = opt$inp;

print(inputfile);

주요 코드 설명

입력 인자 읽기

#!/usr/bin/env Rscript

#! 을 통해 이 스크립트를 실행하는 파일이 Rscript임을 지정합니다.

EDISON 서버에서의 R 설치 위치는 /SYSTEM/R에 버전 별로 정리되어 있습니다. module load 명령어를 통해 원하는 버전의 R 모듈을 추가할 수 있습니다.

library(optparse)

optparse 모듈을 이용하여 커맨드 라인에서 스크립트 실행시 입력 옵션과 입력 파일을 받을 수 있도록 구성합니다.

option_list <- list (
    make_option(c("-i","--inp"), type='character', help="Input file path", default=NULL ,metavar="character")
);

“-i”, “-inp” 옵션을 생성해 option_list에 저장합니다. type='character'을 통해 옵션 뒤에 받을 추가 값을 character로 지정합니다. default=NULL을 통해 기본값을 따로 지정하지 않으며, helpmetaver을 설정해 help 커멘드 실행시 필요한 정보를 입력합니다.

입력 옵션이 여러개인 경우 make_option부분을 추가하여 작성합니다.

opt_parser <- OptionParser(option_list=option_list);
opt <- parse_args(opt_parser);

inputfilepath = opt$inp;
print(inputfilepath);

스크립트 실행시 입력된 입력 인자들을 option_list와 비교하여 옵션에 맞게 입력 되어 있다면, opt <- parse_args(opt_parser); 을 통해 opt$[옵션명]에 해당 옵션을 통해 받은 추가 문자열(입력파일 경로)을 저장합니다.

이후 print() 함수를 통해 입력 파일의 경로를 출력합니다.