0

您好我正在使用 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("

这显然不是我想要的——我想要所有的岁月。我哪里错了?

4

1 回答 1

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]])
}

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

于 2013-09-13T13:22:45.503 回答