我有一些数据,想用tidyverse方法得到多列的摘要统计信息。然而,利用 tidyverse 的
所以我的问题是:
是否有比用
我正在使用最新版本的 tidyverse 包,即 dplyr 0.8.99.9003 和 tidyr 1.1.0。因此,如果任何解决方案需要这些包中尚未在 CRAN 上发布的新函数,则没问题。
注意:我对任何列的名称都没有固定要求,因此如果有一种好的方法可以使用不同/通用的名称获取表的结构,那也可以。
summarize
函数,它将把每个列的统计信息作为一个新列,而我希望看到的是列名作为行,并将每个统计信息作为一个新列。所以我的问题是:
是否有比用
summarize
函数配合 pivot_longer
和 pivot_wider
更优雅(我知道“优雅”这个词模糊不清)的方法来实现?我正在使用最新版本的 tidyverse 包,即 dplyr 0.8.99.9003 和 tidyr 1.1.0。因此,如果任何解决方案需要这些包中尚未在 CRAN 上发布的新函数,则没问题。
library(tidyverse)
dat <- as.data.frame(matrix(1:100, ncol = 5))
dat %>%
summarize(across(everything(), list(mean = mean,
sum = sum))) %>%
pivot_longer(cols = everything(),
names_sep = "_",
names_to = c("variable", "statistic")) %>%
pivot_wider(names_from = "statistic")
预期结果:
# A tibble: 5 x 3
variable mean sum
<chr> <dbl> <dbl>
1 V1 10.5 210
2 V2 30.5 610
3 V3 50.5 1010
4 V4 70.5 1410
5 V5 90.5 1810
注意:我对任何列的名称都没有固定要求,因此如果有一种好的方法可以使用不同/通用的名称获取表的结构,那也可以。