0

我是使用 R 作为语言编程的新手。现在我正在尝试对查询结果进行基本循环,但我无法正确执行,让我们看看:

我有一个名为 RDB.sqlite 的数据库和一个名为 PERDIDAS 的表,其结构如下


| 身份证 | 周期 | 勇气 |

我有以下 R 代码:

library("RSQLite")

con <- dbConnect(SQLite(), dbname = "bd/RDB.sqlite")

periodo <- function(num){


    results<-dbGetQuery(con, paste("SELECT PERIODO,VALOR FROM PERDIDAS WHERE PERIODO = ",num,""))


    # WHEN I TRY ITERATE OVER THE RESULTS...

    for (result in results){
      print(result)
    }

}
results(2)

当我运行这个脚本时,它只是调用 results 函数,将其 2 作为参数传递。这就是我在控制台上看到的:

[1] 2 2 2 2

[1] 2219.398 2218.256 2209.780 2236.723

怎么了 ?我不知道如何正确地迭代所有元素..你能帮我吗?我希望在控制台上看到类似的东西:

[1] 2219.398

[2] 2218.256

[3] 2209.780

[4] 2236.723

4

1 回答 1

3

using 返回的结果dbGetQuery()是一个数据框,而不是for循环假设的列表。

因此,只需在查询命令之后像任何其他数据框一样查看结果:

View(results) # pop-up window of data frame

print(results)  # console output of data frame

for (i in 1:nrow(results)) {
  print(results[i,])  # iterate through each row of data frame
}

for (i in 1:nrow(results)) {
  print(results$column[[i]]) # iterate through each row of selected column in df
}
于 2015-09-29T17:01:08.563 回答