金子邦彦研究室研究道具箱と教材オープンデータデータフレーム形式の R システム付属データセット

データフレーム形式の R システム付属データセット

このページでは,データフレーム形式の R システム付属データセットを扱います.

時系列、配列、緯度・経度は別の Web ページで説明します.

作成するSQLite 3 データベース: /tmp/opendata

前準備

使用するソフトウェア

あらかじめ決めておく事項

このページでは,データベースの作成を行いますので, 作成するデータベースのデータベース名を決めておくこと. このページでは,次のように書く.

メタデータのテーブル定義

メタデータのテーブル定義,meta2sql.rb プログラム, R の Iris データセット」 の記述通りに行う


diamonds (R システムのデータセット)

  1. R システムの diamonds データセットを /tmp/diamonds.csv にエクスポート

    bash プログラム

    #!/bin/bash
    # generate CSV
    cat >/tmp/a.$$.r <<-RCOMMAND
      require(data.table)
      require(ggplot2)
      data.table(diamonds)
      str(diamonds)
      write.csv(diamonds, file="/tmp/diamonds.csv", row.names=FALSE)
    RCOMMAND
    cat /tmp/a.$$.r | r
    head /tmp/diamonds.csv
    

    [image]

  2. メタデータの格納

    bash プログラム

    #!/bin/bash
    rm -f /tmp/a.$$.csv
    cat >/tmp/a.$$.csv <<-METADATA
    diamonds,  1, carat,   real,    ordered, 
    diamonds,  2, cut,     text,    ordered-categorical, 
    diamonds,  3, color,   text,    ordered-categorical, 
    diamonds,  4, clarity, text,    ordered-categorical, 
    diamonds,  5, depth,   real,    ordered, 
    diamonds,  6, tbl,     real,    ordered, 
    diamonds,  7, price,   integer, ordered, 
    diamonds,  8, x,       real,    ordered, 
    diamonds,  9, y,       real,    ordered, 
    diamonds, 10, z,       real,    ordered, 
    METADATA
    
    #
    cat >/tmp/a.$$.sql <<-SQL
    .mode csv
    .import /tmp/a.$$.csv metadata
    vacuum; 
    SQL
    #
    cat /tmp/a.$$.sql | sqlite3 /tmp/opendata
    # 
    echo "select * from metadata where table_name = 'diamonds';" | sqlite3 /tmp/opendata
    

    [image]

  3. テーブル定義

    /tmp/meta2sql.rb を使用し、テーブル定義 SQL プログラムを生成し実行する

    bash プログラム

    #!/bin/bash
    echo 'drop table diamonds; ' > /tmp/a.$$.sql
    cat /tmp/a.$$.sql | sqlite3 /tmp/opendata
    ruby /tmp/meta2sql.rb /tmp/opendata metadata diamonds | tee /tmp/a.$$.sql
    cat /tmp/a.$$.sql | sqlite3 /tmp/opendata
    

    [image]

  4. テーブルの作成

    bash プログラム

    #!/bin/bash
    # import table data
    cat >/tmp/a.$$.sql <<-SQL
    .mode csv
    .import /tmp/a.$$.csv diamonds
    vacuum; 
    SQL
    #
    tail -n +2 /tmp/diamonds.csv > /tmp/a.$$.csv
    cat /tmp/a.$$.sql | sqlite3 /tmp/opendata
    # 
    echo 'select * from diamonds limit 10;' | sqlite3 /tmp/opendata
    

    [image]

Indometh (R システムのデータセット)

  1. R システムの Indometh データセットを /tmp/Indometh.csv にエクスポート

    bash プログラム

    #!/bin/bash
    # generate CSV
    cat >/tmp/a.$$.r <<-RCOMMAND
      require(data.table)
      require(datasets)
      data.table(Indometh)
      str(Indometh)
      write.csv(Indometh, file="/tmp/Indometh.csv", row.names=FALSE)
    RCOMMAND
    cat /tmp/a.$$.r | r
    head /tmp/Indometh.csv
    

    [image]

  2. メタデータの格納

    bash プログラム

    #!/bin/bash
    rm -f /tmp/a.$$.csv
    cat >/tmp/a.$$.csv <<-METADATA
    Indometh,  1,  Subject,  integer,  categorical, 
    Indometh,  2,  t,        real,     ordered, 
    Indometh,  3,  conc,     real,     ordered,  
    METADATA
    
    #
    cat >/tmp/a.$$.sql <<-SQL
    .mode csv
    .import /tmp/a.$$.csv metadata
    vacuum; 
    SQL
    #
    cat /tmp/a.$$.sql | sqlite3 /tmp/opendata
    # 
    echo "select * from metadata where table_name = 'Indometh';" | sqlite3 /tmp/opendata
    

    [image]

  3. テーブル定義

    /tmp/meta2sql.rb を使用し、テーブル定義 SQL プログラムを生成し実行する

    bash プログラム

    #!/bin/bash
    echo 'drop table Indometh; ' > /tmp/a.$$.sql
    cat /tmp/a.$$.sql | sqlite3 /tmp/opendata
    ruby /tmp/meta2sql.rb /tmp/opendata metadata Indometh | tee /tmp/a.$$.sql
    cat /tmp/a.$$.sql | sqlite3 /tmp/opendata
    

    [image]

  4. テーブルの作成

    bash プログラム

    #!/bin/bash
    # import table data
    cat >/tmp/a.$$.sql <<-SQL
    .mode csv
    .import /tmp/a.$$.csv Indometh
    vacuum; 
    SQL
    #
    tail -n +2 /tmp/Indometh.csv > /tmp/a.$$.csv
    cat /tmp/a.$$.sql | sqlite3 /tmp/opendata
    # 
    echo 'select * from Indometh limit 10;' | sqlite3 /tmp/opendata
    

    [image]

本サイトのサイトマップは,サイトマップのページをご覧下さい. 本サイト内の検索は,サイト内検索のページをご利用下さい.

問い合わせ先: 金子邦彦(かねこ くにひこ) [image]