存储循环sqlquery函数的结果

时间:2013-09-13 13:08:02

标签: sql r db2

您好我正在使用R和sqlquery函数,我似乎无法将通过sqlquery函数循环的结果存储到数据框中。

我有:

year<- seq(2000,2010)

for (i in 1:length(year)){

sqlQuery(channel,paste("

select * from table where year = '",year[i],"-01-01'

",sep-""))
}

然而这样做:

results <- for (i in 1:length(year)){
}

不存储任何内容。我可以通过

存储year = i的单个结果
results <- sqlQuery(channel,paste("

这显然不是我想要的 - 我想要所有年份。我哪里错了?

1 个答案:

答案 0 :(得分:1)

难以回答,因为它不是一个可重复的例子,但可能是这样的:

results <- list() 
year<- seq(2000,2010)

for (i in 1:length(year)){

results[[i]]<-sqlQuery(channel,paste("

select * from table where year = '",year[i],"-01-01'

",sep-""))
}

数据集保存在对象结果中,对象结果是11个数据集的列表。要使用2000年的数据调用第一个数据集,请执行results[[1]]

要取消列表并生成您可以执行的不同数据框:

for (i in 1:length(year)){
assign(paste0("results",year[i]),results[[i]])
}

Dataframe result2000包含2000年的数据,依此类推。