我的问题与以下问题有关:
Run external R script n times and save outputs in a data frame
不同之处在于,我不会通过随机化函数生成不同的结果,但是每次都要使用不同的输入变量集(例如,运行纬度范围的代码块lat = c(50,60,70) ,80))
有人暗示过我吗? 非常感谢!
答案 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
}
甚至使用eval
和parse
:
my_function <- eval(parse(text = c("function(latitude) {",
readLines("script.R"), "}")))