【发布时间】:2015-05-22 14:09:54
【问题描述】:
我正在尝试在 R 中创建一个循环,该循环将使用日期向量,通过包含 SQL 查询的循环运行它们,然后为每个输出生成一个单独的数据帧。据我所知,这里是:
library(RODBC)
dvect <- as.Date("2015-04-13") + 0:2
d <- list()
for(i in list(dvect)){
queryData <- sqlQuery(myconn, paste("SELECT
WQ_hour,
sum(calls) as calls
FROM database
WHERE DDATE = '", i,"'
GROUP BY 1
", sep = ""))
d[i] <- rbind(d, queryData)
}
据我所知,代码的查询部分运行良好,因为我自己测试过。我绊倒的地方是最后一行,我尝试通过查询分别保存每个循环的内容,每个循环都有一个循环中使用的日期标签。
如果有任何帮助,我将不胜感激。我现在只持续使用 R 大约 2 个月,所以我绝对愿意接受更清洁、更高效的替代方法。
谢谢。
【问题讨论】:
-
你遇到
lapply了吗? -
@AkhilNair 我没有。这是一种更有效的方法吗?
-
我相信是的。应用函数的要点是它们
apply一个函数向量,因此效率更高。在lapply的情况下,该函数应用于数据结构中保存的元素(在您的情况下是一个列表,但这可能是可变的),[l]apply中的l指的是作为一个返回的数据列表。