首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >KableExtra不能很好地处理tableby

KableExtra不能很好地处理tableby
EN

Stack Overflow用户
提问于 2020-04-27 07:44:45
回答 1查看 516关注 0票数 2

我想做一个性和疾病之间的联想表。因为我使用R.markdown作为pdf。报表,我使用kableExtra来定制表。当表不是data.frame时,KableExtra并不能很好地处理这些表。所以他们用tableby制作难看的表格

这里有这个data.frame,这是我得到的。

代码语言:javascript
复制
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)运行这个分析的结果时,我得到了这样的表格

有两个问题,thirsly KableExtra::不能处理字符,其次,当我使用tablebykableExtra时,我不能自定义列的宽度,因为我想放大包含变量名的列,因为我实际上是在处理变量值的名称非常长的数据。但如果我使用knitr::kable,字符&nbsp;&nbsp;&nbsp;会被移除,但表不会缩小,也不会显示part。我认为knitr有很多局限性。

我该如何处理这个问题?或者,有没有另外一个函数可以用p.value在R.markdown (pdf格式)中制作漂亮的列联表。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-18 05:54:27

为了避免在使用&nbsp;&nbsp;&nbsp;时将结果添加到输出中,请在块设置选项中使用results='asin‘,如下所示:

代码语言:javascript
复制
{r results='asis'}

通过使用print函数中的width选项,可以使用变量名控制列的宽度。从技术上讲,您不需要在打印中包装汇总调用,但如果您这样做了,它不会改变任何东西,并且您可以调整宽度设置。

因此,对于您的示例:

代码语言:javascript
复制
print(summary(tableby(Gender~Disease)), width = 20)

当它渲染成pdf格式时,应该会使它更具可读性。您可以更改宽度,它将以您设置的限制换行。

使用示例中的代码和上面的函数调用,当编织为pdf时,该表如下所示:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61449593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档