现在位置: 首页 > R 教程 > 正文

R mapply() 函数 - 多变量应用

R 语言实例 R 语言实例

R mapply() 函数是 sapply() 的多变量版本,可以对多个列表/向量同时应用函数。

当需要逐元素处理多个参数时,mapply() 可以替代嵌套循环。

mapply() 函数语法格式如下:

mapply(FUN, ..., MoreArgs = NULL, SIMPLIFY = TRUE)

参数说明:

  • FUN 要应用的函数。

  • ... 要传递给 FUN 的多个参数(列表或向量)。

  • MoreArgs 固定参数的列表(不参与逐元素迭代)。

实例

# 用 mapply 生成序列
result <- mapply(seq, from = c(1, 10, 100),
                      to = c(3, 15, 105))
print("生成的序列:")
print(result)

# 逐元素处理多个参数
names <- c("张三", "李四", "王五")
math <- c(88, 92, 76)
english <- c(90, 88, 82)

# 计算每个学生的总分
total <- mapply(function(n, m, e) {
  paste(n, "总分:", m + e)
}, names, math, english)
print("每人总分:")
print(total)

执行以上代码输出结果为:

[1] "生成的序列:"
[[1]]
[1] 1 2 3

[[2]]
[1] 10 11 12 13 14 15

[[3]]
[1] 100 101 102 103 104 105

[1] "每人总分:"
[1] "张三 总分: 178" "李四 总分: 180" "王五 总分: 158"

R 语言实例 R 语言实例