KableExtra 不适用于 tableby

KableExtra does not work well with tableby

我想在性和疾病之间做一个应急 table。因为我对 pdf 使用 R.markdown。报告,我使用 kableExtra 来自定义 table。当 data.frame 不是 table 时,KableExtra 不能很好地处理它们。所以他们用 tableby

使 table 变得丑陋

有了这个 data.frame 这就是我得到的。

library(kableExtra)
library(arsenal)
set.seed(0)
Disease<-sample(c(rep("Name of the first category of the disease",20),
rep("Name of the Second category of the disease",32),
rep("Name of the third category of the disease",48),
rep("The category of those who do not belong to the first three categories",13)))
ID<-c(1:length(Disease))
Gender<-rbinom(length(Disease),1,0.55)
Gender<-factor(Gender,levels = c(0,1),labels = c("F","M"))

data<-data.frame(ID,Gender,Disease)

当我 运行 使用 R.markdown (pdf) 分析的结果时,我得到这种 table

有两个问题,渴KableExtra::不处理字符&nbsp;&nbsp;&nbsp; 其次,当我将 tablebykableExtra 一起使用时,我无法自定义列宽,因为我想扩大包含变量名称的列,因为我实际上是在处理变量值名称的数据很长。但是如果我用knitr::kable,字符&nbsp;&nbsp;&nbsp;被去掉了,但是table没有缩小,有一部分不显示。我认为 knitr 有很多限制。

我该如何处理这个问题?或者是否有另一个函数可以在 R.markdown(pdf 格式)中使用,使 table 与 p.value.

相得益彰

为了避免在使用 knitr 时将 &nbsp;&nbsp;&nbsp; 添加到输出中,请在块设置选项中使用 results='asin',例如:

{r results='asis'}

您可以使用 print 函数中的 width 选项来控制包含变量名的列的宽度。从技术上讲,您不需要将摘要调用打印出来,但这样做不会改变任何内容,并且您可以调整宽度设置。

因此,对于您的示例:

print(summary(tableby(Gender~Disease)), width = 20)

在呈现为 pdf 时应使其更具可读性。您可以更改宽度,它会在您设置的限制处换行。

使用你的例子中的代码和上面的函数调用,table 编织成 pdf 时看起来像这样: