16

RSQLite を使用して日付を含む SQL クエリを作成するにはどうすればよいですか。以下に例を示します。dbGetQueryは行を返しません。

require(RSQLite)
require(ggplot2)
data(presidential)
m <- dbDriver("SQLite")
tmpfile <- tempfile('presidential', fileext='.db')
conn <- dbConnect(m, dbname=tmpfile)
dbWriteTable(conn, "presidential", presidential)
dbGetQuery(conn, "SELECT * FROM presidential WHERE Date(start) >= Date('1980-01-01')")
4

4 に答える 4

13

説明のために、これはうまくいきます:

tmpfile <- tempfile('presidential', fileext='.db')
conn <- dbConnect(m, dbname=tmpfile)
p <- presidential
p$start <- as.character(p$start)
p$end <- as.character(p$end)

dbWriteTable(conn, "presidential", p)
dbGetQuery(conn, "SELECT * FROM presidential WHERE start >= '1980-01-01'")

こちらのドキュメントで、SQLite にネイティブの日付型がないことについて読むことができます。私は SQLite で長い間文字列を日付として使用していたので、実際にはこの問題について完全に忘れていました。

はい、データ フレーム内の任意の Date 列を文字に変換する小さな R 関数を作成しました。単純な比較の場合は、それらを保持するYYYY-MM-DDだけで十分です。演算を行う必要がある場合は、事後に R で変換します。

于 2012-11-19T21:26:54.810 に答える