假设我有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'
我当然可以只提供不同的脚本,但我不想这样做,因为脚本创建/操作具有相同名称的变量,如果它们不交叉污染我感觉更舒服彼此。所以我该怎么做? 与环境混乱? (我不够技巧)
答案 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
在这种情况下,环境非常简单易用,只需转换成列表即可继续处理数据。