如何按因子(分类)变量水平计算连续变量的汇总统计量?
连续变量在分类变量各水平下的汇总统计量计算方法
以下是主流统计工具的常用命令,以GPA(连续变量)和grade(分类变量,取值9th/10th/11th/12th)为例:
R语言
方法1:基础R函数aggregate
无需额外安装包,直接用基础函数实现:
# 假设数据存储在名为df的数据框中 aggregate(GPA ~ grade, data = df, FUN = function(x) { c( mean = mean(x, na.rm = TRUE), std = sd(x, na.rm = TRUE), min = min(x, na.rm = TRUE), max = max(x, na.rm = TRUE), n_obs = length(x) ) })
na.rm = TRUE用于忽略缺失值,可根据数据实际情况调整。
方法2:dplyr包(管道语法更易读)
先安装并加载dplyr包:
library(dplyr) df %>% group_by(grade) %>% summarise( mean_GPA = mean(GPA, na.rm = TRUE), std_GPA = sd(GPA, na.rm = TRUE), min_GPA = min(GPA, na.rm = TRUE), max_GPA = max(GPA, na.rm = TRUE), n_obs = n() )
Stata
使用tabstat命令一步输出所需统计量:
tabstat GPA, by(grade) stat(mean sd min max count)
stat()括号内的参数对应目标统计量,count即为观测数。
Python(Pandas)
利用Pandas的groupby+agg组合实现:
import pandas as pd # 假设数据存储在名为df的数据框中 df.groupby('grade')['GPA'].agg( mean='mean', std='std', min='min', max='max', n_obs='count' )
默认自动忽略缺失值,若需保留缺失值统计可调整参数。
内容的提问来源于stack exchange,提问作者sili
相关产品推荐
相关产品推荐

