使用不同的输入参数运行外部R脚本n次,并在数据帧中保存输出

时间:2015-06-19 08:46:15

标签: r loops

我的问题与以下问题有关:

Run external R script n times and save outputs in a data frame

不同之处在于,我不会通过随机化函数生成不同的结果,但是每次都要使用不同的输入变量集(例如,运行纬度范围的代码块lat = c(50,60,70) ,80))

有人暗示过我吗? 非常感谢!

1 个答案:

答案 0 :(得分:1)

通过输入:

将脚本包装到函数中
my_function <- function(latitude) {

位于顶部,

}

在底部。

这样,您可以source一次,然后使用plyr包中的ldply

results <- ldply(10 * 5:8, myFunction)

如果您希望某列确定使用了哪个纬度,您可以将其添加到函数的data.frame中或使用:

results <- ldply(10 * 5:8, function(lat) data.frame(latitude = lat, myFunction())

如果由于某种原因你不想修改你的脚本,你可以创建一个包装函数:

my_wrapper <- function(a) {
  latitude <- a
  source("script.R", local = TRUE)$value
}

甚至使用evalparse

my_function <- eval(parse(text = c("function(latitude) {",
  readLines("script.R"), "}")))