如何解决从 dplyr 或 gt 转置结果表
我正在使用 dplyr
和 gt
尝试生成汇总表。这是我的示例数据:
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_longer
和 pivot_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()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。