トップページ -> コンピュータ実習 -> R を用いた統計処理/データマイニング -> RSQLite パッケージ
[サイトマップへ], [サイト内検索へ],

RSQLite パッケージ

サイト構成 連絡先,業績など コンピュータ実習 データの扱い コンピュータ設定 教材(公開) サポートページ

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

この Web ページでは,R での RSQLite パッケージのインストール図解で説明する.

※ R のパッケージについての詳細は http://cran.r-project.org/ を見てください.


前準備

Windows の場合

  1. Windows で R 処理系と R コンソールのインストール

  2. Windows の環境変数 PATH に「C:\R\R-2.14.1\bin\i386」を追加

Ubuntu の場合

  1. Ubuntu で R 処理系のインストール

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

  1. R の起動 (execute R)

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

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

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

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

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

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

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

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

    library("RSQLite")
    

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

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

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

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

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

  4. SQL の create table で,テーブルを定義
    rs <- dbSendQuery( conn, 
        "CREATE TABLE commodity ( 
        id   INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, 
        name TEXT, 
        price INTEGER );" 
    )
    

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

  6. SQL の insert table で,テーブルの生成
    rs <- dbSendQuery( conn, "INSERT INTO commodity VALUES( 1, 'apple', 50 );" )
    rs <- dbSendQuery( conn, "INSERT INTO commodity VALUES( 2, 'orange', 20 );" )
    

  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
    


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

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

    sqlite3 
    select * from commodity; 
    .exit