PDF、HTML、および単語にレンダリングできるrmarkdownでクロステーブルを生成する方法を見つけようとしています。これまでのところ、機能しているように見える唯一の解決策は、pander を使用してマークダウン テーブルを生成することです。ただし、行または列のパーセンテージのないクロステーブルに問題があります。descr::CrossTables を処理するとき、pander は行名が重複するマークダウン テーブルを生成します。
このコード:
x<- c('aaa','bbb','ccc')
y<- c('ddd', 'eee', 'fff')
t1 <- descr::CrossTable(x = x, y = y,
prop.c = FALSE,
prop.t = FALSE,
prop.r = FALSE,
prop.chisq = FALSE,
dnn = c('xlabel', 'ylabel'))
pander::pander(t1, digits = 1)
このマークダウンを生成します
-------------------------------------------------
\ ylabel\ \ \ \
xlabel ddd eee fff Total
--------- --------- --------- --------- ---------
**aaa**\ \ \ \ \
N\ 1 0 0 1
bbb\
aaa
**bbb**\ \ \ \ \
N\ 0 1 0 1
ccc\
bbb
**ccc**\ \ \ \ \
N\ 0 0 1 1
Total\
ccc
Total 1 1 1 3
-------------------------------------------------
各行ヘッダーで繰り返される行ラベル bbb\ aaa を参照してください。
参考までに、少なくとも 1 つの % が要求された場合、テーブルは問題ありません
このコード:
t1 <- descr::CrossTable(x = x, y = y,
prop.c = FALSE ,
prop.t = FALSE,
prop.chisq = FALSE,
dnn = c('xlabel', 'ylabel'))
pander::pander(t1, digits = 1)
エラーなしで、このマークダウンを生成します。
-------------------------------------------------
\ ylabel\ \ \ \
xlabel ddd eee fff Total
--------- --------- --------- --------- ---------
**aaa**\ \ \ \ \
N\ 1\ 0\ 0\ 1\
Row(%) 100.0% 0.0% 0.0% 33.3%
**bbb**\ \ \ \ \
N\ 0\ 1\ 0\ 1\
Row(%) 0.0% 100.0% 0.0% 33.3%
**ccc**\ \ \ \ \
N\ 0\ 0\ 1\ 1\
Row(%) 0.0% 0.0% 100.0% 33.3%
Total 1 1 1 3
-------------------------------------------------
テーブルは次のようにレンダリングされます。