使用多个R脚本

时间:2014-03-04 03:20:45

标签: r

假设我有5个相同格式的不同数据集(相同的变量名但不同的值)。 我最初分别对它们进行了分析,因此会有'data1.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'

我当然可以只提供不同的脚本,但我不想这样做,因为脚本创建/操作具有相同名称的变量,如果它们不交叉污染我感觉更舒服彼此。所以我该怎么做? 与环境混乱? (我不够技巧)

1 个答案:

答案 0 :(得分: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
在这种情况下,

环境非常简单易用,只需转换成列表即可继续处理数据。