在 knitr 或 pander 输出中保留 table dimnames?
Keep table dimnames in knitr or pander output?
我使用 knit::kable
和 pander::pandoc
打印频率 tables,通常这对 HTML/Word/LaTeX 输出效果很好。但有时我想在最终产品中保留维度名称。不幸的是,pander
和 knitr
在转换为 markdown 时都删除了这些。
# create a simple table
tab <- table(mtcars$gear, mtcars$carb)
# add dimension names
names(dimnames(tab)) <- c("gear", "carb")
这会创建一个 table:
carb
gear 1 2 3 4 6 8
3 3 4 3 5 0 0
4 4 4 0 4 0 0
5 0 2 0 1 1 1
但是现在如果我们用 kable 打印:
> kable(tab)
| | 1| 2| 3| 4| 6| 8|
|:--|--:|--:|--:|--:|--:|--:|
|3 | 3| 4| 3| 5| 0| 0|
|4 | 4| 4| 0| 4| 0| 0|
|5 | 0| 2| 0| 1| 1| 1|
没有维度名称! (并且 ?kable
不表示任何包含它们的选项。)
对保存这些的工具有什么建议吗?我注意到 descr:CrossTable
可以解决问题,但包含很多我想忽略的额外信息。
非常感谢。
您可以使用例如 ftable
创建平面意外事件 table 隐式具有维度名称:
> pander::pander(ftable(tab))
---- ---- - - - - - -
carb 1 2 3 4 6 8
gear
3 3 4 3 5 0 0
4 4 4 0 4 0 0
5 0 2 0 1 1 1
---- ---- - - - - - -
或者您也可以从 descr::CrossTable
中隐藏不需要的单元格,例如:
> pander(descr::CrossTable(tab, prop.r = FALSE, prop.c = FALSE, prop.chisq = FALSE))
------------------------------------------------------------------------------
\ carb\ \ \ \ \ \ \
gear 1 2 3 4 6 8 Total
--------- -------- --------- --------- --------- --------- --------- ---------
**3**\ \ \ \ \ \ \ \
N\ 3\ 4\ 3\ 5\ 0\ 0\ 15\
Total(%) 9.375% 12.500% 9.375% 15.625% 0.000% 0.000%
**4**\ \ \ \ \ \ \ \
N\ 4\ 4\ 0\ 4\ 0\ 0\ 12\
Total(%) 12.500% 12.500% 0.000% 12.500% 0.000% 0.000%
**5**\ \ \ \ \ \ \ \
N\ 0\ 2\ 0\ 1\ 1\ 1\ 5\
Total(%) 0.000% 6.250% 0.000% 3.125% 3.125% 3.125%
Total 7 10 3 10 1 1 32
------------------------------------------------------------------------------
或在 GH 提交工单 :)
我使用 knit::kable
和 pander::pandoc
打印频率 tables,通常这对 HTML/Word/LaTeX 输出效果很好。但有时我想在最终产品中保留维度名称。不幸的是,pander
和 knitr
在转换为 markdown 时都删除了这些。
# create a simple table
tab <- table(mtcars$gear, mtcars$carb)
# add dimension names
names(dimnames(tab)) <- c("gear", "carb")
这会创建一个 table:
carb
gear 1 2 3 4 6 8
3 3 4 3 5 0 0
4 4 4 0 4 0 0
5 0 2 0 1 1 1
但是现在如果我们用 kable 打印:
> kable(tab)
| | 1| 2| 3| 4| 6| 8|
|:--|--:|--:|--:|--:|--:|--:|
|3 | 3| 4| 3| 5| 0| 0|
|4 | 4| 4| 0| 4| 0| 0|
|5 | 0| 2| 0| 1| 1| 1|
没有维度名称! (并且 ?kable
不表示任何包含它们的选项。)
对保存这些的工具有什么建议吗?我注意到 descr:CrossTable
可以解决问题,但包含很多我想忽略的额外信息。
非常感谢。
您可以使用例如 ftable
创建平面意外事件 table 隐式具有维度名称:
> pander::pander(ftable(tab))
---- ---- - - - - - -
carb 1 2 3 4 6 8
gear
3 3 4 3 5 0 0
4 4 4 0 4 0 0
5 0 2 0 1 1 1
---- ---- - - - - - -
或者您也可以从 descr::CrossTable
中隐藏不需要的单元格,例如:
> pander(descr::CrossTable(tab, prop.r = FALSE, prop.c = FALSE, prop.chisq = FALSE))
------------------------------------------------------------------------------
\ carb\ \ \ \ \ \ \
gear 1 2 3 4 6 8 Total
--------- -------- --------- --------- --------- --------- --------- ---------
**3**\ \ \ \ \ \ \ \
N\ 3\ 4\ 3\ 5\ 0\ 0\ 15\
Total(%) 9.375% 12.500% 9.375% 15.625% 0.000% 0.000%
**4**\ \ \ \ \ \ \ \
N\ 4\ 4\ 0\ 4\ 0\ 0\ 12\
Total(%) 12.500% 12.500% 0.000% 12.500% 0.000% 0.000%
**5**\ \ \ \ \ \ \ \
N\ 0\ 2\ 0\ 1\ 1\ 1\ 5\
Total(%) 0.000% 6.250% 0.000% 3.125% 3.125% 3.125%
Total 7 10 3 10 1 1 32
------------------------------------------------------------------------------
或在 GH 提交工单 :)