2012-06-15 5 views
11

현재 '구성'파일을 기반으로 데이터 세트를 분석해야하는 스크립트를 작성하고 있습니다.사용자 정의 구성 파일 읽기 및 사용

configuration.txt :

이 파일의 입력은 예를 들어입니다

123456, 654321 
409,255,265 
1 

그것은뿐만 아니라 onther 값을 포함 할 수 있지만 알 숫자가 될 것입니다. 파일 상술 한 예에서는 다음과 같이 판독되어야한다

timestart <- 123456 
timeend <- 654321 
exclude <- c(409,255,265) 
paid <- 1 

구성 파일의 배치는 고정되어 있지 않고, 그 시작 시간 (UNIX) 종료 시간 (UNIX) 배열을 포함되어야 제외 할 숫자 및 기타 입력란 결국 GUI에서 사용자가 지정한 필드로 구성해야합니다. 나는 그 포맷에 가장 적합한 포맷팅을 알지 못하지만 이러한 기본 작업을 수행하자마자 큰 문제가 될 것이라고 생각하지 않습니다.

그러나 그렇다면 어떤 값이 어떤 변수에 속하는지 알기가 어려울 것입니다.

+0

구성 파일을 작성한 코드를 정확히 포함하는'.r' 파일로 작성한 다음'source()'로 작성하십시오. 변수는 사용자 환경에서 정의됩니다. – Andrie

+3

비슷한 질문 : http://stackoverflow.com/q/5272846/602276 – Andrie

+0

R 사용자/웹 개발자로서 JSON을 제안합니다. 적절한 (비) 직렬화를위한'rjson'과'RJSONIO' 패키지가 있습니다. 그러나 @Andrie가 제안한대로 IMO'source()'가능한 R 스크립트가 가장 좋은 방법입니다. – aL3xa

답변

21

실제로 Andrie가 제안한 것처럼 .r config 파일을 사용하는 것이 가장 쉬운 방법입니다. 나는 그 옵션을 완전히 간과했다!

따라서, 단지 이미 변수와 .R 파일을 만들 :

#file:config.R 
timestart <- 123456 
timeend <- 654321 
exclude <- c(409,255,265) 
paid <- 1 

을 다른 스크립트 사용에 :

source("config.R") 

그리고 짜잔을. 앤드리 감사합니다!

+0

+1 그게 전부 야. 에 오신 것을 환영합니다. – Andrie

+0

다시, 나는 정말로 이것을 생각하지 않았습니다. 비록 그것은 매우 간단합니다. 나중에 웹 사이트에서 파생 된 입력과 함께 사용하기 위해, 이것은 여전히 ​​완벽하게 사용할 수 있습니다. –

+1

이것은 좋지만 이상적으로는 전역 변수 목록을 오염시키지 않도록 별도의 네임 스페이스에 설정을로드하려고합니다. 나는 .R 파일 안에 내 이름 붙은 목록을 정의 할 수 있다고 생각한다. – Leonid

0

또 다른 대안은 config 패키지를 사용하는 것입니다. 이를 통해 실행 환경 (생산, 테스트 등)에 따라 설정 값을 실행할 수 있습니다. 모든 매개 변수는 목록에 의해 액세스되며 YAML 텍스트 형식 구성 파일에 의해로드됩니다. 설정에 대한

자세한 내용과 예제는 여기에서 찾을 수 있습니다 : https://cran.r-project.org/web/packages/config/vignettes/introduction.html 당신이하는 JSON, TOML, YAML, 또는 INI 텍스트 구성 파일을로드 또한 configr 패키지를보고 싶어하면

.

관련 문제