r - 如何在 R 中创建包含合并行的表
问题描述
是否有一个 R 包可以让我生成这样的表格 -
我正在使用 excel 来显示我想要的输出。我以 mtcars 数据集为例。在这里,我将碳水化合物尺寸分为小、中和大,并按这些尺寸显示计数和平均 mpg。我一直在探索 gt 包,但仍在努力生产这样的东西。我从本教程中看到的是 gt 表可以在每个组下方添加汇总行,但是我想将汇总(计数、平均值等)添加为列,而不是每个组下方的行。
最后,当我尝试使用 mtcars 数据集复制上面链接中的教程时,出现以下错误 -
Error in rlang::eval_tidy(expr = var_expr, data = data_tbl, env = emptyenv()) : object mean.mpg not found
这是我的代码 -
mtcars %>%
select(mpg, carb) %>%
mutate(size = case_when(
carb %in% c(1, 2) ~ "Large",
carb %in% c(4, 4) ~ "Medium",
TRUE ~ "Small"
)) %>%
group_by(carb, size) %>%
summarise(count = n(),
mean.mpg = mean(mpg)) %>%
ungroup() %>%
gt(groupname_col = "size") %>%
summary_rows(groups = T,
columns = mean.mpg,
fns = list(
average = "mean"
))
我很感激任何帮助。
解决方案
如果您在新列名周围加上引号,则在运行 gt Version: 0.2.2 的 R 4.04 中不会出现错误,因此请尝试:columns = 'mean.mpg'。从@lag_rat_kid 评论和我们的共同经验来看,我猜这种不合理之处在更新版本的 pkg:gt 中得到了纠正。
#quit current session; restart
install.packages("gt")
library(gt); library(dplyr)
# your code now succeeds
尽管我对其进行了一些修改以修复“中等”案例定义中的错误
我使用 Rstudio 导出为 PNG 文件,对它创建的大小感到震惊...... 1.8 MB,所以我保存为 jpg 文件,然后在将其包含在此处之前重新保存为 PNG 文件)。然后我采用了另存为jpg文件的做法,然后用图像查看程序将其转换为上传到这里。
如果您从分组中删除“卡片”列,做一些不同的标签并且不包括摘要行(您已经计算过),您会更接近您的愿望:
my_gt_tbl <- mtcars %>%
select(mpg, carb) %>%
mutate(size = case_when(
carb %in% c(1, 2) ~ "Large = 1,2",
carb %in% c(3, 4) ~ "Medium = 3,4",
TRUE ~ "Small = 6,8"
)) %>%
group_by(size) %>%
summarise(count = n(),
mean.mpg = mean(mpg)) %>%
gt(groupname_col = "size")
my_gt_tbl
推荐阅读
- datadog - 是否可以将现有数据(如 Prometheus 和 elk 中的数据)迁移到 datadog?
- php - PHP DOM 如何从 UL 获取项目和子项目
- reactjs - GSAP 对从服务器获取的数组中的元素进行动画处理
- batch-file - 根据时间更改文件名
- python - 我可以在一个 file.py 中导入 matplotlib.pyplot 但我无法在 django 应用程序的 view.py 中导入它
- android - Firebase 自定义事件计数超过了 Firebase 限制事件计数
- java - 逐列迭代二维数据,在 Java 中处理和存储列标题
- android - GoogleClientApiConnected 异常从何而来?
- expression - 如何获取 Pyomo 命名表达式的 sulution 值?
- azure-devops - 如何在 Azure DevOps Server 中找到许可证信息?