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

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     
────────────────────────────────────────────────


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

スポンサーリンク
Prices and shipping availability may change. Please refer to the product page at time of purchase.
Content displayed on this site is provided by Amazon and may be updated or removed.
Amazon Associate, karada-good earns income through qualifying sales.