Rで解析:handsontable.jsでテーブル作成「rhandsontable」パッケージの紹介


handsontable.jsを利用して、動的なhtmlテーブルを出力する「rhandsontable」パッケージがリリースされました。動作が非常に軽く、大量のデータ内容を確認するのに向いているかと思います。データ数が1万のテーブルを最下部に紹介しますので試してみてください。

また、参考までに2.3 GHz Intel Core i7, メモリ16GB, Mac OS バージョン10.10.4, chrome 43.0.2357.130 (64-bit)の環境で10万データのテーブルがローカルで実用範囲に動きました。

今後のバージョンアップで機能が追加されるということなので非常に楽しみなパッケージです。

同様なパッケージに「DT」パッケージがあります。
・「DT」パッケージの紹介
https://www.karada-good.net/analyticsr/r-107

また、RStudioを利用すると結果の出力が非常に楽です。出力方法は「dygraphs」パッケージの紹介記事から確認ください。なお、10万データのテーブル出力はエラーが出ますが、ブラウザでの出力は可能です。
・「dygraphs」パッケージの紹介
https://www.karada-good.net/analyticsr/r-113/

紹介するパッケージバージョンは0.1、windows7 64bitとMac OS 10.10.3、RStudioはVersion 0.99.441、R version 3.2.0で確認しています。


パッケージのインストール

下記コマンドを実行してください。

#パッケージのインストール
install.packages("rhandsontable")

実行コマンドの紹介

下記コマンドを実行してください。パッケージの中から使用頻度が高そうなコマンドを紹介します。詳細はコメントまたはパッケージヘルプを確認してください。

#パッケージの読み込み
library("rhandsontable")

#文字列を因子にしない
TestData <- data.frame(val = 1:4, bool = TRUE,
                       TEST = c("A", "B", "C", "D"),
                       test = c("a", "b", " ", "d"),
                       Day = seq(from = Sys.Date(), by = "days",
                                 length.out = 4),
                       stringsAsFactors = FALSE)

#オプション無しでテーブルを描写
rhandsontable(TestData, rowHeaders = NULL)

#指定した行にリストを追加:hot_colコマンド
#hot_col(col = 行名, type = リスト型を指定, readOnly = NULL)
#typeオプション;numeric, date, checkbox, select, dropdown,
#               autocomplete, passwordが指定可能です。
#TEST行に"dropdown" , test行に"password"を指定
#TEST3列目をtest行にドラッグすると大文字のCが表示されます
rhandsontable(TestData, rowHeaders = NULL) %>%
  hot_col(col = "TEST", type = "dropdown") %>%
  hot_col(col = "TEST", type = "password")

#セルに色付け:hot_heatmapコマンド
#hot_heatmap(cols = 指定しなければ表全体が対象, 行を指定する場合は入力,
#            color_scale = c("最低値で使用する色", "最高値で使用する色"))
#データ例の作成
TestData2 <- data.frame(matrix(sample(1:100, replace = TRUE), 10, 10))
colnames(TestData2) <- LETTERS[1:10]

rhandsontable(TestData2) %>%
  hot_heatmap(cols = c(1, 3, 5, 7, 9), color_scale = c("#505457", "#deb7a0"))

#データ数が1万のテーブル  
TestData3 <- data.frame(matrix(sample(1:10000, replace = TRUE), 100, 100))
rhandsontable(TestData3) %>%
hot_heatmap(color_scale = c("#505457", "#deb7a0"))

出力例

セルの内容変更や、ドラッグによるデータの更新などが可能です。なお、iOSでの閲覧は一部の機能が動作しないようです。
<オプション無しでテーブルを描写>

<指定した行にリストを追加:hot_colコマンド>
TEST3列目をtest行にドラッグすると大文字のCが表示されます

<セルに色付け:hot_heatmapコマンド>

<データ数が1万のテーブル>


少しでも、あなたのウェブや実験の解析が楽になりますように!!

スポンサードリンク

おすすめコンテンツ


スポンサードリンク