分组统计是我们实际工作中非常常用的统计方式,比如想统计不同性别的人数、平均年龄,如果再加一个分组变量,统计起来会有一定的难度,如果是三个分组变量呢?
今天我们一起来看看,如何又快又好的实现分组统计。
一、导入数据
#删除内存中变量
rm(list = ls())
mydata <- read.delim(“clipboard”)
str(mydata)
head(mydata)
二、变量因子化
mydata$sex<-factor(mydata$sex,levels=c(0,1),labels=c("Male","Female"))
mydata$bmig<-factor(mydata$bmig,levels=c(1,2,3),labels=c("Normal","Overweight","Obese"), ordered = TRUE)
mydata$work<-factor(mydata$work,levels=c(0,1),labels=c("Employment","Unemployment"))
mydata$disease<-factor(mydata$disease,levels = c(0,1),labels=c("Non-disease","Disease"))
三、数据描述
str(mydata)
head(mydata)
summary(mydata)
四、分组统计
4.1 不同性别、不同疾病状态的平均年龄
library(dplyr)
result1<-mydata %>%
group_by(sex,disease) %>%
summarise(Mean_age=mean(age,na.rm = TRUE))
result1
4.2 不同性别、不同疾病状态、不同工作状态的平均年龄
library(dplyr)
result2<-mydata %>%
group_by(sex,disease, work) %>%
summarise(Mean_age=mean(age,na.rm = TRUE))
result2
4.3 不同性别、不同疾病的中位年龄,以及各组人数
result3<-mydata %>%
group_by(sex,disease) %>%
summarise(Median_age=median(age,na.rm = TRUE),n = n())
result3