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

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

Rで解析:コンソールで表を表示「tabstats」パッケージの紹介

データの概要や基本統計量をコンソール上で表示するのに便利なパッケージの紹介です。出力位置や文字色などの変更が可能なだけでなく、標準出力にはない見やすい表の出力が可能です。

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

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

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

# パッケージのインストール
install.packages("tabstats")
# パッケージの読み込み
library("tabstats")
スポンサーリンク

コマンド例

詳細はコメント、パッケージのヘルプを確認してください。

データフレームをコンソールに表示:table_summaryコマンド

オプション意味初期値
data二列のデータフレーム
title表題を指定する文字列NULL
l行数を指定する整数NULL
headerヘッダー表示の有無を指定する論理値FALSE
center_table表の中心揃えを指定する論理値FALSE
border_char境界線に使用する文字“-“
style表要素のスタイリングを制御するANSI形式のリストlist()
align列値の揃え方を指定するNULL
# サンプルデータを作成
df <- data.frame(
  Category = c("A", "B", "C", "D", "E"),
  Value = c(10, 20, 30, 40, 50))

# タイトルとヘッダーを付けて表示
table_summary(df, title = "Sample Table", header = TRUE)

# 2行目で分割し、中央揃えで表示
table_summary(df, l = 2, center_table = TRUE)

# スタイルと揃え方を指定して表示
table_summary(
  df, header = TRUE,
  style = list(
    left_col = "blue_bold",
    right_col = "red",
    title = "green",
    border_text = "yellow"),
  align = c("center", "right"))

実行結果:

> # タイトルとヘッダーを付けて表示
> table_summary(df, title = "Sample Table", header = TRUE)
    Sample Table     
---------------------
  Category    Value
---------------------
  A              10
  B              20
  C              30
  D              40
  E              50
---------------------

相関行列の表示仕様を定義する:new_pairwise_dataコマンド

オプション意味初期値
var1ペアごとの第一変数名
var2ペアごとの第二変数名
rho・pvalなど、セル内に表示する追加の名前付き文字列ベクトル(var1・var2と同じ長さ)
# ペアワイズ表示用の仕様オブジェクトを作成
new_pairwise_data(
  var1 = c("a", "a", "b"),
  var2 = c("b", "c", "c"),
  rho = c("0.89", "0.79", "0.66"),
  pval = c("<0.001", "<0.001", "<0.001"))

実行結果:

$var1
[1] "a" "a" "b"

$var2
[1] "b" "c" "c"

$extras
$extras$rho
[1] "0.89" "0.79" "0.66"

$extras$pval
[1] "<0.001" "<0.001" "<0.001"


$pattern
[1] "lt"

$vars
[1] "a" "b" "c"

attr(,"class")
[1] "pairwise_spec"

表のスタイルを指定:sm_styleコマンド

オプション意味初期値
left_col左列のスタイルを指定するNULL
right_col右列のスタイル指定NULL
border_text水平の境界線のスタイルNULL
titleタイトルテキストのスタイルNULL
sep列区切り文字NULL
# スタイルの設定
sm_style(left_col = "blue_bold", right_col = "green", title = "bold")

# 左列と右列を指定し、区切り文字を設定
sm_style(left_col = \(x) cli::col_red(x), sep = "|")

クロス集計表を表示:cross_tableコマンド

オプション意味初期値
data観測頻度の行列や表
percentage表示する割合の種類を指定(TRUE/”all”、”by_row”、”by_col”、”by_total”、FALSE/NULLのいずれか)NULL
layoutレイアウトの凡例ボックスを表示するかTRUE
expected期待頻度を表示するかTRUE
layout_centerレイアウトボックスを中央に配置するかFALSE
header_underline列ヘッダーの下線を短くするかFALSE
digits小数点以下の桁数を指定する名前付きリスト(ex・row_pct・col_pct・total_pctを指定可能)NULL
center_table表全体をターミナルにセンターするかFALSE
stylect_style()で作成したスタイルのリストを指定NULL
# 標準設定でクロス集計表を表示
cross_table(matrix(c(10, 20, 30, 40), nrow = 2))

# 全体に対する割合を表示
cross_table(matrix(c(10, 20, 30, 40), nrow = 2), percentage = "all")

実行結果:

> # 標準設定でクロス集計表を表示
> cross_table(matrix(c(10, 20, 30, 40), nrow = 2))

┌──────────────────────────────────┐ 
|      Layout for Cont. Table      | 
├──────────────────────────────────┤ 
|  < Freq > (< Expected Value >)   | 
└──────────────────────────────────┘ 

      Cross Tabulation: x by y       
─────────────────────────────────────
                 y            
─────────────────────────────────────
  x        Col1      Col2     TOTAL  
─────────────────────────────────────
  Row1    10 (12)   30 (28)    40    

  Row2    20 (18)   40 (42)    60    
─────────────────────────────────────
  TOTAL     30        70       100   
─────────────────────────────────────

> # 全体に対する割合を表示
> cross_table(matrix(c(10, 20, 30, 40), nrow = 2), percentage = "all")

┌──────────────────────────────────┐ 
|      Layout for Cont. Table      | 
├──────────────────────────────────┤ 
|  < Freq > (< Expected Value >)   | 
|        < % by total row >        | 
|      < % by total column >       | 
|       < % by grand total >       | 
└──────────────────────────────────┘ 

      Cross Tabulation: x by y       
─────────────────────────────────────
                 y            
─────────────────────────────────────
  x        Col1      Col2     TOTAL  
─────────────────────────────────────
  Row1    10 (12)   30 (28)    40    
            25%       75%      40%   
            33%       43%            
            10%       30%            

  Row2    20 (18)   40 (42)    60    
            33%       67%      60%   
            67%       57%            
            20%       40%            
─────────────────────────────────────
  TOTAL     30        70       100   
            30%       70%            
─────────────────────────────────────

クロス集計表のスタイルを指定する:ct_styleコマンド

オプション意味初期値
observed観測頻度のセルスタイルNULL
expected期待頻度の値スタイルNULL
row_percentage行パーセントの値スタイルNULL
col_percentage列の割合値の形式NULL
total_percentage総計の割合値の形式NULL
total合計行・列のセルNULL
title表のタイトルNULL
border_text水平の境界線のスタイルNULL
# cross_tableコマンドのstyleオプションに各要素の色とタイトルのスタイルを指定
# 標準設定でクロス集計表を表示
cross_table(matrix(c(10, 20, 30, 40), nrow = 2),
            style = ct_style(observed = "blue", expected = "yellow", title = "bold"))

ペアワイズ行列をコンソールに表示する:pairwise_matrixコマンド

オプション意味初期値
display対称行列かpairwise_specオブジェクトを指定
title表上部に表示するラベル。自動検出可能NULL
nameレイアウトレジェンドボックスヘッダー用の短い名前“Pairwise Matrix”
diag_1対角線セルは常に「1」を表示するかTRUE
digits小数点以下の桁数3
layout_view表上にレイアウトレジェンドボックスを表示するかFALSE
layout_center画面中央に配置するかFALSE
center_tableターミナルで表を中央に配置するかFALSE
border_char区切り文字getOption(“tab_default”)$border_char
styleスタイルのリストlist()
# 通常の相関行列から表示
pairwise_matrix(cor(mtcars[, 1:4]), title = "Pearson Correlation Matrix")

# ペアワイズ仕様オブジェクトを作成
spec <- new_pairwise_data(
  var1 = c("a", "a", "b"),
  var2 = c("b", "c", "c"),
  rho = c("0.89", "0.79", "0.66"),
  pval = c("<0.001", "<0.001", "<0.001"))

# レイアウトの凡例ボックスを表示して出力
pairwise_matrix(spec, title = "Pearson Correlation Matrix", layout_view = TRUE)

実行結果:

> # 通常の相関行列から表示
> pairwise_matrix(cor(mtcars[, 1:4]), title = "Pearson Correlation Matrix")

           Pearson Correlation Matrix           
────────────────────────────────────────────────
  Variable    mpg      cyl      disp      hp    
────────────────────────────────────────────────
  mpg          1      -0.852   -0.848   -0.776  
────────────────────────────────────────────────
  cyl        -0.852     1       0.902    0.832  
────────────────────────────────────────────────
  disp       -0.848    0.902     1       0.791  
────────────────────────────────────────────────
  hp         -0.776    0.832    0.791     1     
────────────────────────────────────────────────


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

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