我想将 dplyr::summarise()
与 dplyr::across()
函数一起使用来生成一个表,其中包含非缺失值的数量、几个变量的均值和标准差。我可以使用 purrr 建模语法获取有关缺失值和平均值的信息,但我无法弄清楚如何在不使用多个汇总调用的情况下将汇总放入单个表中,然后 bind_cols()
iris %>%
group_by(Species) %>%
summarise(across(starts_with("Sepal"), ~sum(!is.na(.))))
iris %>%
group_by(Species) %>%
summarise(across(starts_with("Sepal"), ~mean(., na.rm = TRUE)))
有没有办法组合列表语法:
iris %>%
group_by(Species) %>%
summarise(across(starts_with("Sepal"), list(mean = mean, sd = sd)))
使用上面显示的 purrr
函数语法一次获得未缺失值的数量、均值和标准差?
答案 0 :(得分:5)
要在同一个 across
语句中应用多个函数,您可以使用 list
语法:
library(dplyr)
iris %>%
group_by(Species) %>%
summarise(across(starts_with("Sepal"), list(sum = ~sum(!is.na(.)),
mean = mean, sd = sd)))