将多个查询结果存储在单个变量中

时间:2013-06-14 20:10:10

标签: r data-structures

我遇到了将多个查询的结果存储到列表中的问题。 目前,我已将先前执行的查询的结果存储在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
}

1 个答案:

答案 0 :(得分:1)

首先,不要担心太多关于整个“不要使用循环”的事情。以下是三个基本选项:

  1. for循环。基本模板是:

    result <- vector("list",length(queryResults[[1]])
    for (i in ...){
        #Do stuff
        result[[i]] <- something
    }
    
  2. lapply这里的基本格式为:

    lapply(seq_len(queryResults[[1]]),function(i) dbGetQuery(conn,paste(...)))
    

    您不一定需要函数将查询和连接对象作为参数,如果它们存在于调用环境中,R的范围将能够找到它们。

  3. 使用IN子句将其全部作为一个查询运行,之后再split

  4. 就个人而言,我尽量使用(3)。