2014-03-04 6 views
0

동일한 형식 (동일한 변수 이름이지만 다른 값)의 5 가지 데이터 세트가 있다고 가정 해보십시오. 나는 처음에 개별적으로 분석하기 때문에 분석을 유사하게 'data2.R'여러 R 스크립트 작업

read(data1) 
*analysis* 
out<-f(data1) 

그리고이 들어 'data1.R',

read(data2) 
*analysis* 
out<-f(data2) 

등등 등등이있을 것입니다 ... 이제

, 나는 결과를 쓰고 있어요와 같은 개별 스크립트에서 결과를 그리는 하나의 R 스크립트를 사용하고자하는

# this is the result from dataset 1 
*some command to run 'data1.R' and extract object 'out' 
# Then some discussion then 
*some command to run 'data2.R' and extract object 'out' 
,

물론 다른 스크립트를 소스로 사용할 수는 있지만 스크립트가 동일한 이름의 변수를 작성/조작하기 때문에 원하지 않습니다. 교차 오염을 일으키지 않으면 훨씬 편안합니다. 서로. 그래서 내가 무엇을해야하니? 환경이 엉망입니다. (나는 그렇게할만한 기술이 아니다)

답변

3

환경을 두려워 할 이유는 없다. 여기에 약간의 예가 있습니다.

script1.R :

x <- rnorm(10) 

out <- mean(x) 

script2.R :

x <- rpois(20, 100) 

out <- mean(x) 

주요 스크립트

e1 <- new.env() 
source("script1.R", local = e1) 

e2 <- new.env() 
source("script2.R", local = e2) 


as.list(e1) 
## $x 
## [1] -1.0941748872 -1.1482668349 -0.0008547298 0.8843361504 1.5612913538 
## [6] 0.6729380904 0.6081967121 0.0943251617 1.0372299042 2.3717537411 

## $out 
## [1] 0.4986775 

as.list(e2) 
## $x 
## [1] 107 114 92 105 100 100 130 86 104 98 103 92 116 97 99 100 105 89 97 
## [20] 95 

## $out 
## [1] 101.45 

환경이 경우 사용하기 매우 간단하고 편리하며, 단지 수 목록으로 전환하여 데이터 작업을 계속할 수 있습니다.

+0

내가 필요한 것 같습니다. – qoheleth