我正在构建一个 R 脚本,该脚本旨在多次查询数据库(一个用于 3 个向量元素的每个排列,但我很难弄清楚如何使用它 ldply
来实现这一点。
tags <- c("tag1","tag2","tag3")
times <- c("2012-08-01 13:00:00","2012-08-07 21:00:00")
timesteps <- c("2m", "10m","60m", "90m")
query <- function(tag, time, timestep) {
sql <- paste("select tag, time, timestep, value from mydb where tag = '",tag,"' and time = '",time,"' and timestep = '",timestep,"'", sep="")
# pretend the line below is actually querying a database and returning a DF with one row
data.frame(tag = tag, time = time, timestep = timestep, value = rnorm(1))
}
# function works correctly!
query(time = times[1], tag = tags[1], timestep = timesteps[1])
# causes an error! (Error in FUN(X[[1L]], ...) : unused argument(s) (X[[1]]))
ldply(times, query, time = times, tag = tags, timestep = timesteps)
我以为我可以使用 ldply 嵌套三次,每个向量一个,但我什至没有离开第一级!
有什么想法我能做什么?