R apply() 函数 - 数组应用
R apply() 函数用于对矩阵或数组的行或列应用一个函数。
apply() 可以避免写显式循环,使代码更简洁高效。
apply() 函数语法格式如下:
apply(X, MARGIN, FUN, ...)
参数说明:
X 输入矩阵或数组。
MARGIN 维度:1 表示按行,2 表示按列,c(1,2) 表示行列同时。
FUN 要应用的函数。
... 传递给 FUN 的额外参数。
实例
# 创建成绩矩阵
scores <- matrix(c(88, 92, 76, 85, 90,
90, 88, 82, 78, 95,
85, 91, 78, 88, 92),
nrow = 5, ncol = 3)
colnames(scores) <- c("数学", "英语", "编程")
rownames(scores) <- c("张三", "李四", "王五", "赵六", "钱七")
print("成绩矩阵:")
print(scores)
# 按行计算每个学生的平均分
row_means <- apply(scores, 1, mean)
print("每人平均分:")
print(round(row_means, 1))
# 按列计算每科的最高分
col_max <- apply(scores, 2, max)
print("每科最高分:")
print(col_max)
scores <- matrix(c(88, 92, 76, 85, 90,
90, 88, 82, 78, 95,
85, 91, 78, 88, 92),
nrow = 5, ncol = 3)
colnames(scores) <- c("数学", "英语", "编程")
rownames(scores) <- c("张三", "李四", "王五", "赵六", "钱七")
print("成绩矩阵:")
print(scores)
# 按行计算每个学生的平均分
row_means <- apply(scores, 1, mean)
print("每人平均分:")
print(round(row_means, 1))
# 按列计算每科的最高分
col_max <- apply(scores, 2, max)
print("每科最高分:")
print(col_max)
执行以上代码输出结果为:
[1] "成绩矩阵:"
数学 英语 编程
张三 88 90 85
李四 92 88 91
王五 76 82 78
赵六 85 78 88
钱七 90 95 92
[1] "每人平均分:"
张三 李四 王五 赵六 钱七
87.7 90.3 78.7 83.7 92.3
[1] "每科最高分:"
数学 英语 编程
92 95 92

R 语言实例