微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 dplyr 或 gt 转置结果表

如何解决从 dplyr 或 gt 转置结果表

我正在使用 dplyrgt 尝试生成汇总表。这是我的示例数据:

structure(list(child.sex = structure(c(2L,1L,2L,1L),.Label = c("boy","girl"),class = "factor"),child.age = c(9,9,10,9)),row.names = c(NA,10L),class = "data.frame")
   child.sex child.age
1       girl         9
2        boy         9
3       girl         9
4        boy         9
5       girl         9
6        boy        10
7       girl         9
8        boy         9
9        boy        10
10       boy         9

这是我的代码

dt %>%
  group_by(child.sex) %>%
  dplyr::summarise(n=n(),mean=mean(child.age),sd=sd(child.age),min=min(child.age),max=max(child.age)) %>%
  as.data.frame() %>%
  gt()

结果是一个相当宽的格式。我想知道如何以长格式重新排列表格,例如:

       boy     girl
n       6       4
mean   9.333   9.000
sd     0.516   0.000
min     9       9
max     10      9

解决方法

使用 pivot_longerpivot_wider 你可以:

library(dplyr)
library(gt)
library(tidyr)

dt %>%
  group_by(child.sex) %>%
  dplyr::summarise(n=n(),mean=mean(child.age),sd=sd(child.age),min=min(child.age),max=max(child.age)) %>% 
  pivot_longer(-child.sex) %>% 
  pivot_wider(names_from = "child.sex",values_from = "value") %>% 
  gt()

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。