我遇到了将多个查询的结果存储到列表中的问题。 目前,我已将先前执行的查询的结果存储在a list中。 目前,我无法找到将结果存储到列表或类似内容中的方法。
queryResults2返回一个2D列表。
#Sample code for 2nd select
for(i in length(queryResults[[1]]){
query_pd <-paste("Select price_date,price from price_master where stock_id ='",queryResults[[1]][i],"' order by price_date")
queryResults2 <- dbGetQuery(conn, query_pd)
#storing value here
}
答案 0 :(得分:1)
首先,不要担心太多关于整个“不要使用循环”的事情。以下是三个基本选项:
for
循环。基本模板是:
result <- vector("list",length(queryResults[[1]])
for (i in ...){
#Do stuff
result[[i]] <- something
}
lapply
这里的基本格式为:
lapply(seq_len(queryResults[[1]]),function(i) dbGetQuery(conn,paste(...)))
您不一定需要函数将查询和连接对象作为参数,如果它们存在于调用环境中,R的范围将能够找到它们。
使用IN
子句将其全部作为一个查询运行,之后再split
。
就个人而言,我尽量使用(3)。