Rでウェブ解析:JavaScriptのDataTablesがRから作成できます!「DTパッケージ」の紹介


ウェブ制作に関わる方にもぜひ使用していただきたい「DTパッケージ」が登場しました。Rは統計解析に利用できるだけではありません、Rから直接GoogleAnalyticsTwitterのデータも取得することもできます。この機会にぜひRを試してみてください。

紹介するパッケージは、JavaScriptのDataTablesを利用してソートなどが可能なテーブルをHTMLで出力することができるパッケージです。もちろん、CSSでデザインを指定することもできます。

機能が非常に多いパッケージです。日常的に使いそうな機能を紹介します。出力例はiframeでリンクしています。グリグリ触ってみてください。動作はwindows/MacのChrome(バージョン 43.0.2357.124)とiOSのSafariで確認しています。

他の機能は、英語ですが下記オフィシャルHPをご覧ください。
DT: An R interface to the DataTables library
http://rstudio.github.io/DT/

「使ってみたいけど、Rってなにさ?」な方はこちらの記事をご覧ください。
Rのガイド:研究者も、社会人も、おねえさんも。とりあえず、みんなで使ってみませんか?

紹介パッケージのバージョンは0.1です。

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

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

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

実行コマンドと出力の紹介

詳細はコマンド内のコメントを確認してください。

<パッケージを読み込みます>

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

<HTMLファイルの保存場所を指定します>

##HTMLファイルの保存場所を指定##
setwd(paste(as.character(tkchooseDirectory(title = "保存場所を選択"), sep = "", collapse ="")))

<データ例を作成します>

#データ例を作成
TestData <- data.frame(Group = paste0("TEST", 1:100),
                       Data1 = sample(1:500, 100),
                       Data2 = sample(200:300, 100))



<基本的な使用方法>

##データからテーブルを作成##
TestHTML1 <- datatable(TestData, rownames = FALSE,
                       caption = "Table: テスト")

#作成テーブルをhtmlで出力
saveWidget(TestHTML1, "TestHTML1.html")
####

出力例
・データからテーブルを作成



<テーブルのカスタマイズ方法>

##カスタムフィルタを設定##
#filterとoptionsで設定します
#optionsはlistで設定します
TestHTML2 <- datatable(TestData, rownames = FALSE,
                      caption = "Table: テスト", filter = "top",
                      options = list(
                        Data1  = 100, autoWidth = TRUE
                      ))

#作成テーブルをhtmlで出力
saveWidget(TestHTML2, "TestHTML2.html")
####

##ハイパーリンクを含むテキストを設定##
#matrixコマンドでデータを作成
#新しいウィンドウが開きます
TESTURL <- matrix(c('<p>からだにいいもの</p>', '<a href="http://karada-good.net" target="_blank">karada-good.net</a>'), 1)

#行名の設定
colnames(TESTURL) = c('<span style="color:blue">ブログ名</span>', '<em>クリックしてね</em>')

#escapeオプションにFALSEを設定します
TestHTML3 <- datatable(TESTURL, rownames = FALSE,
                      caption = "Table: テスト", escape = FALSE)
#作成テーブルをhtmlで出力
saveWidget(TestHTML3, "TestHTML3.html")
####

##テーブルの表示列数と表示列メニューの指定##
#optionsオプションにリストでpageLengthとlengthMenuで指定します
#初期に表示される列数はpageLengthで3に設定しています
TestHTML4 <- datatable(TestData, rownames = FALSE,
                      caption = "Table: テスト",
                      options = list(pageLength = 3, lengthMenu = c(6, 12, 18, 24)))

#作成テーブルをhtmlで出力
saveWidget(TestHTML4, "TestHTML4.html")
####

##セルの表示書式を設定##
#パイプ"%>%"でつなげて設定します
TestHTML5 <- TestHTML1 %>% formatCurrency("Data1") %>% formatPercentage("Data2", 2)

#作成テーブルをhtmlで出力
saveWidget(TestHTML5, "TestHTML5.html")
####

##セルの背景色と文字色を設定##
#パイプ"%>%"でつなげてformatStyleで設定します
#背景色はstyleIntervalオプションを使用しています
#styleInterval(数値, c(数値以下のセルの色, 数値以上のセルの色))
#例ではData1には"例のヒモ"と"栗山未来の髪"の色です
#Data2の色が気になる方はこちらの参考記事:https://www.karada-good.net/analyticsr/r-83/
TestHTML6 <- TestHTML1 %>% formatStyle("Data1",
                                       color = "#a87963",
                                       backgroundColor = styleInterval(250, c("#4b61ba", "#deb7a0")),
                                       fontWeight = "bold") %>%
                           formatStyle("Data2",
                                       color = "#28231e",
                                       backgroundColor = styleInterval(260, c("#ffdd99", "#a87963")),
                                       fontWeight = "bold") 

#作成テーブルをhtmlで出力
saveWidget(TestHTML6, "TestHTML6.html")
####

##CSSで書式を設定##
#パイプ"%>%"でつなげてformatStyleで設定します
TestHTML7 <- TestHTML1 %>% formatStyle("Data1",
                                      transform = "rotateX(45deg) rotateY(20deg) rotateZ(30deg)",
                                      backgroundColor = "#a87963")

#作成テーブルをhtmlで出力
saveWidget(TestHTML7, "TestHTML7.html")
####



出力例
・カスタムフィルタを設定




・ハイパーリンクを含むテキストを設定(URLをクリックすると「からだにいいもの」のTOPが新しいウィンドウで表示されます。)




・テーブルの表示列数と表示列メニューの指定




・セルの表示書式を設定




・セルの背景色と文字色を設定




・CSSで書式を設定



<テーブルのレスポンシブ>

##選択したセルを枠で囲む##
#extensionsオプションに"KeyTable"
TestHTML8 <- datatable(TestData, rownames = FALSE,
                      caption = "Table: テスト", extensions = "KeyTable")

#作成テーブルをhtmlで出力
saveWidget(TestHTML8, "TestHTML8.html")
####

##テーブルの表示幅により列をカプセル化##
#PCとモバイルで見え方が違います
#extensionsオプションに"Responsive"
TestHTML9 <- datatable(TestData, rownames = FALSE,
                       caption = "Table: テスト", extensions = "Responsive")

#作成テーブルをhtmlで出力
saveWidget(TestHTML9, "TestHTML9.html")
####

##テーブルのスクロール##
#extensionsオプションに"Scroller"とoptionsにリストで設定
TestHTML10 <- datatable(TestData, rownames = FALSE,
                       caption = "Table: テスト", extensions = "Scroller",
                       options = list(deferRender = TRUE,
                                      dom = "frtiS",
                                      scrollY = 300,
                                      scrollCollapse = TRUE
                       ))

#作成テーブルをhtmlで出力
saveWidget(TestHTML10, "TestHTML10.html")
####



出力例
・選択したセルを枠で囲む




・テーブルの表示幅により列をカプセル化




・テーブルのスクロール


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

スポンサードリンク

おすすめコンテンツ


スポンサードリンク