2014-03-04 48 views
0

说我有5个不同的数据集的相同格式(相同的变量名称,但不同的值)。 我初步的分析它们分开,所以会有“data1.R”其中包含了分析使用多个R脚本

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

而类似“data2.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