方法一:
建立一个矩阵
dfx <- data.frame(
group = c(rep('A', 8), rep('B', 15), rep('C', 6)),
sex = sample(c("M", "F"), size = 29, replace = TRUE),
age = runif(n = 29, min = 18, max = 54)
)
利用plyr里的ddply可以分组求均值和sum
ddply(dfx, .(group, sex), summarize,
mean = round(mean(age), 2),
sd = round(sd(age), 2))
结果如下:
方法二
使用dplyr包的group_by和summarize功能
library(dplyr)
dfx %>%
as_tibble() %>%
dplyr::group_by(group,sex) %>%
dplyr::summarize(
n = n(),
mean_age = mean(age, na.rm = T),
median = median(age, na.rm = T)
)
参考链接
https://www.rdocumentation.org/packages/plyr/versions/1.8.6/topics/ddply
https://dplyr.tidyverse.org/reference/summarise.html