R tapply() 函数 - 分组统计
R tapply() 函数用于按分组对数据应用函数,进行分组汇总。
tapply() 是分组统计中最常用的函数之一,类似于 SQL 的 GROUP BY。
tapply() 函数语法格式如下:
tapply(X, INDEX, FUN, ...)
参数说明:
X 要统计的数据向量。
INDEX 分组变量(因子或列表)。
FUN 要应用的汇总函数。
实例
# 学生成绩数据
scores <- c(88, 92, 76, 85, 90, 95, 70, 82, 89, 78)
grade <- c("A", "A", "B", "B", "A", "A", "C", "B", "A", "C")
# 按班级计算平均分
avg_by_grade <- tapply(scores, grade, mean)
print("各班平均分:")
print(avg_by_grade)
# 按班级计算多个统计量
result <- tapply(scores, grade, function(x) {
c(人数 = length(x), 均值 = mean(x), 最高 = max(x))
})
print("各班详细统计:")
print(result)
scores <- c(88, 92, 76, 85, 90, 95, 70, 82, 89, 78)
grade <- c("A", "A", "B", "B", "A", "A", "C", "B", "A", "C")
# 按班级计算平均分
avg_by_grade <- tapply(scores, grade, mean)
print("各班平均分:")
print(avg_by_grade)
# 按班级计算多个统计量
result <- tapply(scores, grade, function(x) {
c(人数 = length(x), 均值 = mean(x), 最高 = max(x))
})
print("各班详细统计:")
print(result)
执行以上代码输出结果为:
[1] "各班平均分:" A B C 90.8 81.0 74.0 [1] "各班详细统计:" $A 人数 均值 最高 5.0 90.8 95.0 $B 人数 均值 最高 3.0 81.0 85.0 $C 人数 均值 最高 2.0 74.0 78.0

R 语言实例