【发布时间】:2020-09-02 15:18:08
【问题描述】:
我正在使用 RMarkdown 并尝试使用 kable 包。我有一个三变量数据框:gender (factor)、age_group (factor) 和 test_score(scale)。我想创建以因子变量(性别和年龄组)作为表行和列的双向表,并将 test_scores 的汇总统计信息作为单元格内容。这些汇总统计数据是平均值、标准差和百分位数(中位数、第 1 个十分位数、第 9 个十分位数和第 99 个百分位数)。有没有一种简单的方法可以以一种漂亮的方式(比如使用 kable 包)构建这些表,而无需先将所有这些值输入到矩阵中?我搜索了 kable 帮助文件,但找不到如何操作。
# How my data looks like:
gender <- rep(c(rep(c("M", "F"), each=3)), times=3)
age <- as.factor(rep(seq(10,12, 1), each=6))
score <- c(4,6,8,4,8,9,6,6,9,7,10,13,8,9,13,12,14,16)
testdata <-data.frame(gender,age,score)
| gender | age | score |
|--------|-----|-------|
| M | 10 | 4 |
| M | 10 | 6 |
| M | 10 | 8 |
| F | 10 | 4 |
| F | 10 | 8 |
| F | 10 | 9 |
| M | 11 | 6 |
| M | 11 | 6 |
| M | 11 | 9 |
| F | 11 | 7 |
| F | 11 | 10 |
| F | 11 | 13 |
| M | 12 | 8 |
| M | 12 | 9 |
| M | 12 | 13 |
| F | 12 | 12 |
| F | 12 | 14 |
| F | 12 | 16 |
我想要一个如下所示的表格(但直接从我的数据集计算并具有漂亮的发布格式):
Mean score by gender & age
| | 10yo | 11yo | 12yo | Total |
|--------|:----:|:----:|:----:|:-----:|
| Male | 6 | 7 | 10 | 7.7 |
| Female | 7 | 10 | 14 | 10.3 |
| Total | 6.5 | 88.5 | 12 | 9 |
我尝试使用 kable 包,它确实为我提供了一些漂亮的表格(格式很好),但我只能用它生成频率表。但是我在其中找不到任何论据来选择变量摘要。如果有人建议使用更好的软件包来构建如上所述的表格,我将不胜感激。
kable(data, "latex", booktabs = T) %>%
kable_styling(latex_options = "striped")
【问题讨论】:
-
您希望每个汇总统计信息使用一个表吗?还是每个单元格中的所有这些统计数据?第二个选项似乎是一张杂乱无章的桌子。
-
你好 LuizZ,欢迎来到 Stackoverflow。请阅读how to create a minimal reproducible example 并更新您的问题。如果您提供一个包含数据子集、您已经尝试过的代码以及对所需结果的解释的可重现示例,您将获得更好、更快的帮助。
-
您好,Thomas 和 Len,感谢您的反馈。我将尝试使用可重现的示例更新我的问题,包括我的数据的虚构子集
标签: r cell summary kable kableextra