金子邦彦研究室プログラミングR のプログラム例RSQLite パッケージ

RSQLite パッケージ

SQLite は軽量のデータベース管理システムソフトウェア

このページでは,R システムでの RSQLite パッケージのインストールを説明する.

関連する外部ページ

R システムの CRAN の URL: https://cran.r-project.org/

前準備

R システムのインストール

R システムの CRAN の URL: https://cran.r-project.org/

RSQLite パッケージのインストール (Install RSQLite package)

  1. R の起動 (execute R)

    [image]
  2. 「install.pacakges("RSQLite")」を使い,RSQLite パッケージをインストール (Install R package using install.packages())
    install.packages("RSQLite")
    

    [image]
  3. (オプション) CPAN ミラーサイトの選択 (Optionally, Choose CPAN mirror site)

    「install.packages()」を実行すると,ミラーサイトを選択するウインドウが現れる場合がある. 日本国内を選んでおく.

    ※ 操作手順例(「Japan (Hyogo)」をダブルクリック)

    [image]
  4. インストール終了の確認

    エラーメッセージが出ていないことを確認

    [image]
  5. 「library(RSQLite)」のように操作して,依存パッケージのインストールを行う

    パッケージを使うために,「library(RSQLite)」のようなコマンドを実行して,パッケージを読み込む必要がある. ここで,なぜ,パッケージを読み込んでいるかというと, 今インストールしたパッケージである RSQLite が, 他のパッケージのインストールを必要としており,初回のパッケージ読み込みにおいて,R が,そうした必要な他のパッケージを自動的にインストールしてくれるからです.

    library("RSQLite")
    
  6. (オプション) パッケージを新しくインストールするかを尋ねてきたときには,「はい」をクリックし,パッケージのインストールを開始

RSQLite パッケージを使ってみる (try to use RSQLite package)

  1. RSQLite パッケージの読み込み
    library("RSQLite")
    

    [image]
  2. dbDriver() 関数を使い,drv オブジェクトを取得
    drv <- dbDriver("SQLite", max.con = 1)
    

    [image]
  3. dbConnect() 関数を使い,データベース管理システムソフトウェアと接続
    conn <- dbConnect(drv, dbname="/tmp/mydb") 
    

    [image]
  4. SQL の create table で,テーブルを定義
    rs <- dbSendQuery( conn, 
        "create table commodity ( 
        id   integer primary key autoincrement not null, 
        name text, 
        price INTEGER );" 
    )
    

    [image]
  5. dbListTables() 関数をつかい,テーブル一覧を取得
    dbListTables(conn)
    

    [image]
  6. SQL の insert table で,テーブルの生成
    rs <- dbSendQuery( conn, "insert into commodity values( 1, 'apple', 50 );" )
    rs <- dbSendQuery( conn, "insert into commodity values( 2, 'orange', 20 );" )
    

    [image]
  7. dbGetPreparedQuery() 関数をつかい,テーブルを生成

    多数の行を一度に挿入したい時は、for ループなどは使わずに、 dbGetPreparedQuery() 関数を使う方が高速.

    data <- data.frame(
      id   = c(1, 2, 3), 
      name = c("apple", "orange", "banana"), 
      price = c("100", "80", "250" ), 
      stringsAsFactors=F )
    
    dbBeginTransaction(conn)
    dbGetPreparedQuery(conn, "insert into products values(:id, :name, :price)", bind.data=data)
    dbCommit(conn)
    
  8. SQL の select from を評価させてみる
    rs <- dbSendQuery( conn, "SELECT * FROM commodity;;" )
    t <- fetch(rs, n = -1)
    t
    

    [image]

SQLite 3 でテーブルの中身を確認したいときの操作

端末で次のように操作する.行数が多いときは SQLiteman などを使うのが便利.

sqlite3 
select * from commodity; 
.exit