Rで解析:クロステーブルの作成が楽々!!「tabxplor」パッケージ

Rの解析に役に立つ記事
スポンサーリンク

クロステーブルの作成に便利なパッケージの紹介です。出現数をパーセントなどに変換、信頼区間を追加で表示、テーブルを指標で分割、条件で文字の色付けや体裁を整えたクロステーブルをエクセルで表示するコマンドが収録されています。

パッケージバージョンは1.0.2。実行コマンドはwindows 11のR version 4.1.2で確認しています。

スポンサーリンク

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

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

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

実行コマンド

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

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

###データ例の作成#####
#tidyverseパッケージがなければインストール
if(!require("tidyverse", quietly = TRUE)){
  install.packages("tidyverse");require("tidyverse")
}
set.seed(1234)
n <- 50
TestData <- tibble(Group = sample(paste0("Group", 1:4), n,
                                  replace = TRUE),
                   ID = sample(LETTERS[1:5], n,
                               replace = TRUE),
                   Year = sample(c(2020, 2021, 2022), n,
                                 replace = TRUE),
                   X_num_Data = sample(c(1:50), n, replace = TRUE),
                   Y_num_Data = sample(c(51:100), n, replace = TRUE)) %>%
  mutate(X_Y_Rate = X_num_Data / Y_num_Data)
########

#&#12463;&#12525;&#12473;&#12486;&#12540;&#12502;&#12523;&#12398;&#20316;&#25104;:tab&#12467;&#12510;&#12531;&#12489;
#&#34892;&#20596;&#12487;&#12540;&#12479;&#12434;&#25351;&#23450;:row_var&#12458;&#12503;&#12471;&#12519;&#12531;
#&#21015;&#20596;&#12487;&#12540;&#12479;&#12434;&#25351;&#23450;:col_var&#12458;&#12503;&#12471;&#12519;&#12531;
tab(data = TestData, row_var = Group, col_var = ID)

#A tabxplor tab: 5 x 7
#  Group          A   B   D   E         C     Total
#  <fct>  <n-mixed> <n> <n> <n> <n-mixed> <n-mixed>
#1 Group1         3   1   1   2         0         7
#2 Group2         5   3   3   1         3        15
#3 Group3         0   1   1   4         5        11
#4 Group4         5   5   3   2         2        17
#5 Total         13  10   8   9        10        50

######################################################################
#&#20986;&#29694;&#25968;&#12434;&#12497;&#12540;&#12475;&#12531;&#12486;&#12540;&#12472;&#12395;&#35336;&#31639;:pct&#12458;&#12503;&#12471;&#12519;&#12531;
#&#34892;&#20596;:"row",&#21015;&#20596;:"col",Sub&#12486;&#12540;&#12502;&#12523;/&#12464;&#12523;&#12540;&#12503;&#12391;&#20001;&#26041;&#21521;:"all"
#&#12486;&#12540;&#12502;&#12523;&#20840;&#20307;&#12391;&#20001;&#26041;&#21521;:""all_tabs""
tab(data = TestData, row_var = Group,
    col_var = ID, pct = "row")

#A tabxplor tab: 5 x 7
#   Group       A      B      D      E      C  Total
#   <fct>  <row%> <row%> <row%> <row%> <row%> <row%>
#1 Group1    43%    14%    14%    29%     0%   100%
#2 Group2    33%    20%    20%     7%    20%   100%
#3 Group3     0%     9%     9%    36%    45%   100%
#4 Group4    29%    29%    18%    12%    12%   100%
#5 Total     26%    20%    16%    18%    20%   100%

######################################################################
#&#20449;&#38972;&#21306;&#38291;&#12434;&#34920;&#31034;:ci&#12458;&#12503;&#12471;&#12519;&#12531;;
#"cell","diff","auto"
tab(data = TestData, row_var = Group,
    col_var = ID, pct = "row", ci = "cell")

## A tabxplor tab: 5 x 7
#  Group         A        B        D        E        C  Total
#  <fct>    <row%>   <row%>   <row%>   <row%>   <row%> <row%>
#1 Group1 43%&plusmn;32.1 14%&plusmn;37.0 14%&plusmn;37.0 29%&plusmn;35.5  0%&plusmn;35.4   100%
#2 Group2 33%&plusmn;25.0 20%&plusmn;25.2 20%&plusmn;25.2  7%&plusmn;23.1 20%&plusmn;25.2   100%
#3 Group3  0%&plusmn;25.9  9%&plusmn;28.6  9%&plusmn;28.6 36%&plusmn;28.3 45%&plusmn;26.5   100%
#4 Group4 29%&plusmn;23.7 29%&plusmn;23.7 18%&plusmn;23.4 12%&plusmn;22.6 12%&plusmn;22.6   100%
#5 Total  26%      20%      16%      18%      20%        100%

######################################################################
#&#12486;&#12540;&#12502;&#12523;&#12398;&#20998;&#21106;:tab_vars&#12458;&#12503;&#12471;&#12519;&#12531;
tab(data = TestData, row_var = Group,
    col_var = ID, pct = "row",
    tab_vars = Year)

## A tabxplor tab: 15 x 8
#  Groups:         Year [4]
#   Year     Group               A      B      C      D      E  Total
#   <fct>    <fct>          <row%> <row%> <row%> <row%> <row%> <row%>
# 1 2020     Group2            57%    14%    14%    14%     0%   100%
# 2 2020     Group3             0%     0%    50%     0%    50%   100%
# 3 2020     Group4            20%    40%     0%    20%    20%   100%
# 4 2020     TOTAL 2020        36%    21%    14%    14%    14%   100%
  
# 5 2021     Group1            33%     0%     0%     0%    67%   100%
# 6 2021     Group2            25%    25%    25%     0%    25%   100%
# 7 2021     Group3             0%     0%    75%     0%    25%   100%
# 8 2021     Group4            50%    33%     0%    17%     0%   100%
# 9 2021     TOTAL 2021        29%    18%    24%     6%    24%   100%
  
#10 2022     Group1            50%    25%     0%    25%     0%   100%
#11 2022     Group2             0%    25%    25%    50%     0%   100%
#12 2022     Group3             0%    20%    20%    20%    40%   100%
#13 2022     Group4            17%    17%    33%    17%    17%   100%
#14 2022     TOTAL 2022        16%    21%    21%    26%    16%   100%
  
#15 Ensemble TOTAL ENSEMBLE    26%    20%    20%    16%    18%   100%

######################################################################
#&#35036;&#21161;&#21015;&#22793;&#25968;:sup_cols&#12458;&#12503;&#12471;&#12519;&#12531;
tab(data = TestData, row_var = Group,
    col_var = ID, pct = "row",
    tab_vars = Year, sup_cols = "X_num_Data")

# A tabxplor tab: 15 x 9
# Groups:         Year [4]
#   Year     Group               A      B      C      D      E  Total X_num_Data
#   <fct>    <fct>          <row%> <row%> <row%> <row%> <row%> <row%>     <mean>
# 1 2020     Group2            57%    14%    14%    14%     0%   100%         36
# 2 2020     Group3             0%     0%    50%     0%    50%   100%         32
# 3 2020     Group4            20%    40%     0%    20%    20%   100%         27
# 4 2020     TOTAL 2020        36%    21%    14%    14%    14%   100%         32

# 5 2021     Group1            33%     0%     0%     0%    67%   100%         23
# 6 2021     Group2            25%    25%    25%     0%    25%   100%         18
# 7 2021     Group3             0%     0%    75%     0%    25%   100%         18
# 8 2021     Group4            50%    33%     0%    17%     0%   100%          9
# 9 2021     TOTAL 2021        29%    18%    24%     6%    24%   100%         16

#10 2022     Group1            50%    25%     0%    25%     0%   100%         30
#11 2022     Group2             0%    25%    25%    50%     0%   100%         10
#12 2022     Group3             0%    20%    20%    20%    40%   100%         34
#13 2022     Group4            17%    17%    33%    17%    17%   100%         39
#14 2022     TOTAL 2022        16%    21%    21%    26%    16%   100%         30

#15 Ensemble TOTAL ENSEMBLE    26%    20%    20%    16%    18%   100%         26

######################################################################
#&#26465;&#20214;&#12391;&#25991;&#23383;&#12398;&#33394;&#20184;&#12369;:color&#12458;&#12503;&#12471;&#12519;&#12531;
#&#33394;&#28961;:"no",Total&#12363;&#12425;&#12398;&#24046;:"diff",
#"diff_ci","after_ci","contrib","auto"
#&#35443;&#32048;&#12399;?tab&#12434;&#23455;&#34892;&#12375;&#12390;&#21442;&#29031;
tab(data = TestData, row_var = Group,
    col_var = ID, pct = "row",
    tab_vars = Year, sup_cols = "X_num_Data",
    color = "diff")

######################################################################
#&#34920;&#12434;&#12456;&#12463;&#12475;&#12523;&#12391;&#34920;&#31034;:tab_xl&#12467;&#12510;&#12531;&#12489;
#sup_cols&#12458;&#12503;&#12471;&#12519;&#12531;&#12434;&#20351;&#12358;&#12392;&#12456;&#12521;&#12540;&#12364;&#20986;&#12427;?
tab(data = TestData, row_var = Group,
    col_var = ID, pct = "row",
    tab_vars = Year,
    color = "diff") %>%
  tab_xl(replace = TRUE, sheets = "auto")

出力例

・クロステーブルをコンソールに表示(条件で文字の色付け:colorオプション)

・tab_xlコマンド


少しでも、あなたの解析が楽になりますように!!

タイトルとURLをコピーしました