我正在尝试找到一种在 rmarkdown 中生成可以呈现为 PDF、HTML 和 word 的交叉表的方法。到目前为止,似乎唯一可行的解决方案是使用 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
-------------------------------------------------
表格呈现为: