sqliteのDBへのデータ入出力についてです。
まず、sqlite本体からデータベースを作成して見ます。
https://sqlite.org/index.html
download→Precompiled Binaries for Windows→sqlite-tools-win32-x86-3190300.zi
作業フォルダに解答。
コマンドプロンプトを起動→作業フォルダに移動
database1をデータベースとして作成し、
日次でドル円レートを入れるFXテーブルを作成
カラムは日付、始値、高値、安値、終値とする。
sqlite database1 CREATE TABLE FX(date,open,high,low,close); .exit
rから接続してみます。
install.packages("RSQLite") library("RSQLite") con = dbConnect(SQLite(), "database1", synchronous="off") dbListTables(con)#テーブル"FX"が取得できる
マネースクエアジャパンが同じ形式のデータを公開していますので、
こちらの、csvファイルをダウンロードして入れてみます。
[ヒストリカルデータ | マーケット情報(FX) | FX - マネースクウェア・ジャパン(M2J)]
http://www.m2j.co.jp/market/historical.php
→ドル円日足ファイルcsvをダウンロード
usdjpy <- read.csv("USDJPY.csv",header=T) sql <- paste("insert into FX values('",usdjpy[1,1],"',",usdjpy[1,2],",",usdjpy[1,3],",",usdjpy[1,4],",",usdjpy[1,5],");",sep="") #"insert into FX values('2007/04/02',117.84,118.08,117.46,117.84);" dbSendQuery(con,sql)
これで一行目を入力できました。
dbGetQuery(con,"select * from FX") dbReadTable(con,"FX")
で、今insertしたデータを確認できます。
dbReadTableは、テーブル名でアクセスができるのでSQLを発行する必要がありません。
この作業をループで全行に行えば全てのデータがinsertできますが、
データフレーム全てを入力できる便利な関数があります。
dbWriteTable(con, "USDJPY", usdjpy) #新たに"USDJPY"テーブルを作成して、データフレームusdjpyを一括挿入できる
最後は、切断します。
dbDisconnect(con)#切断