您好我正在使用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("
这显然不是我想要的 - 我想要所有年份。我哪里错了?
答案 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年的数据,依此类推。