我正在使用knit::kable
和打印频率表pander::pandoc
,并且通常这适用于HTML/Word/LaTeX输出.但有时我想在最终产品中保留尺寸名称.不幸的是,pander
并knitr
转化为降价时,删除这些.
# create a simple table tab <- table(mtcars$gear, mtcars$carb) # add dimension names names(dimnames(tab)) <- c("gear", "carb")
这会创建一个表:
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
这个诀窍,但包含了我想省略的大量额外信息.
非常感谢.
您可以使用eg ftable
来隐式创建具有维度名称的平面列联表:
> 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上提交一张票:)