Rで解析:インタラクティブなデータビューアを実現する「datasetviewer」パッケージ
R で大きめのデータセットを開いて中身を確認したいとき、標準的な方法では画面をスクロールし続けたり、必要な列だけを表示したりするのが億劫に感じることがあります。本パッケージは、インタラクティブに確認作業を快適におこなうことが可能です。例えば、高速スクロールが可能、列を選ぶパネル、列ごとのプロパティ表示やデータを大規模データ全権をブラウザ内でそのまま表示できるのが大きな特徴です。また、テキストでのフィルタリング、ソート、CSV エクスポートにも対応しています。
パッケージバージョンは0.1.1。Windows 11 x64 (build 26200)のR version 4.6.1で確認しています。
<おすすめのRに関する書籍です>
Rユーザのためのtidymodels[実践]入門〜モダンな統計・機械学習モデリングの世界
著者: 松村 優哉, 瓜生 真也, 吉村 広志
パッケージのインストール
下記コマンドを実行してください。
# パッケージのインストール
install.packages("datasetviewer")
# パッケージの読み込み
library("datasetviewer")
# コマンド例実行で必要なパッケージを読み込み
# install.packages("shiny")
library("shiny")
# install.packages("artoo")
library("artoo")スポンサーリンク
コマンド例
詳細はコメント、パッケージのヘルプを確認してください。
基本的には「dataset_viewer」コマンド でデータ内容をインタラクティブに確認、必要に応じて「datasetviewerOutput」コマンドと 「renderDatasetViewer」コマンドを使って、Shinyで表示。以下の2つのコマンドです。
Shinyアプリにデータビューアを配置:datasetviewerOutputコマンド
Shiny アプリの UI 側に、データセットビューアを表示する領域を配置します。
| オプション | 意味 | 初期値 |
|---|---|---|
| outputId | ビューアの出力スロットを識別する ID 文字列 | |
| width | グリッドを配置する要素の幅を CSS サイズで指定 | “100%” |
| height | グリッドを配置する要素の高さを CSS サイズで指定 | “500px” |
ビューアを描写:renderDatasetViewerコマンド
dataset_viewer() の結果を描画しします。GUIでフィルタ・ソート・列選択・表示モードを変更できます。
| オプション | 意味 | 初期値 |
|---|---|---|
| expr | dataset_viewer() ウィジェットを返す描画式 | |
| env | expr の評価に使用する環境 | parent.frame() |
| quoted | expr が既にクォート済みかを示す論理値 | FALSE |
次の例では両者を組み合わせ、設定したフィルタ条件と選択列をShinyで表示します。
# UI の作成
ui <- fluidPage(
# データビューアを配置
datasetviewerOutput("viewer", height = "500px"),
# テキスト出力を配置
verbatimTextOutput("state")
)
# サーバーを定義
server <- function(input, output, session) {
# mtcars データを表示するビューアをレンダリング
output$viewer <- renderDatasetViewer(dataset_viewer(mtcars))
# フィルタと選択された列の状態を表示する
output$state <- renderText({
# 文字列結合で状態情報を作成
paste0(
# フィルター条件を表示
"filter: ", input$viewer_filter, "\n",
# 選択された列名を表示(カンマ区切り)
"columns: ", paste(input$viewer_columns, collapse = ", ")
)
})
}
# Shinyアプリを作成して実行
shinyApp(ui, server)
データをインタラクティブに取得:dataset_viewerコマンド
| オプション | 意味 | 初期値 |
|---|---|---|
| x | 表示するデータフレーム、または artoo::read_dataset() で読み込むファイルパス(xpt、Dataset-JSON、NDJSON、Parquet、RDS) | |
| … | 将来の拡張用に予約された引数 | |
| view | ヘッダーの初期表示モードを “names”(列名)か “labels”(ラベル)で指定 | c(“names”, “labels”) |
| width | ウィジェットの幅を表す文字列または数値 | NULL |
| height | ウィジェットの高さを表す文字列または数値 | NULL |
| elementId | DOM 要素に付与する ID 文字列 | NULL |
# データからインタラクティブに情報を取得する
viewer <- dataset_viewer(mtcars)
# 行数を表示する
viewer$x$n_rows
[1] 32
# 最初の列のラベルを取得して表示する
viewer$x$columns[[1]]$name
[1] "mpg"
# データ構造を確認
# 表示は省略
viewer$x
この記事が誰かの役に立ちますように。
スポンサーリンク