本文へスキップ
からだにいいもの

Rのトピックスを中心に『まだ、まだ、知らない、役に立つ情報?』を発信します。

Rで解析:インタラクティブなデータビューアを実現する「datasetviewer」パッケージ

R で大きめのデータセットを開いて中身を確認したいとき、標準的な方法では画面をスクロールし続けたり、必要な列だけを表示したりするのが億劫に感じることがあります。本パッケージは、インタラクティブに確認作業を快適におこなうことが可能です。例えば、高速スクロールが可能、列を選ぶパネル、列ごとのプロパティ表示やデータを大規模データ全権をブラウザ内でそのまま表示できるのが大きな特徴です。また、テキストでのフィルタリング、ソート、CSV エクスポートにも対応しています。

パッケージバージョンは0.1.1。Windows 11 x64 (build 26200)のR version 4.6.1で確認しています。

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

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

# パッケージのインストール
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でフィルタ・ソート・列選択・表示モードを変更できます。

オプション意味初期値
exprdataset_viewer() ウィジェットを返す描画式
envexpr の評価に使用する環境parent.frame()
quotedexpr が既にクォート済みかを示す論理値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
elementIdDOM 要素に付与する ID 文字列NULL
# データからインタラクティブに情報を取得する
viewer <- dataset_viewer(mtcars)

# 行数を表示する
viewer$x$n_rows
[1] 32

# 最初の列のラベルを取得して表示する
viewer$x$columns[[1]]$name
[1] "mpg"

# データ構造を確認
# 表示は省略
viewer$x


この記事が誰かの役に立ちますように。

スポンサーリンク
価格および配送状況は変更される場合があります。購入時は商品ページをご確認ください。
当サイトに表示されている商品情報はAmazonから提供されたものであり、更新または削除される場合があります。
karada-goodはAmazonアソシエイトとして、適格販売により収入を得ています。