0

私はRを言語プログラミングとして使用するのは初めてです。そして今、クエリの結果に対して基本的なループを試していますが、適切に実行できません。見てみましょう:

次の構造を持つ、PERDIDAS という名前のテーブルを持つ RDB.sqlite という名前の DB があります。


| | ID | ピリオド | 勇気 |

私は次の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)

このスクリプトを実行すると、パラメーターとして 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 に答える