R mapply() Функция - Многомерное применение
Функция R mapply() — это многомерная версия sapply(), которая может применять функцию к нескольким спискам/векторам одновременно.
Когда нужно обрабатывать несколько аргументов поэлементно, mapply() может заменить вложенные циклы.
Синтаксис функции mapply() выглядит следующим образом:
mapply(FUN, ..., MoreArgs = NULL, SIMPLIFY = TRUE)
Описание параметра:
FUNФункция, которую нужно применить.
...Несколько аргументов (списков или векторов) для передачи в FUN.
MoreArgsСписок фиксированных аргументов (не участвующих в поэлементном переборе).
Примеры
# Генерация последовательностей с помощью mapply
result <- mapply(seq, from = c(1, 10, 100),
в = c(3, 15, 105))
print("Сгенерированные последовательности:")
print(result)
# Обработка нескольких аргументов поэлементно
names <- c("Чжан Сань", "Ли Сы", "Ван У")
math <- c(88, 92, 76)
английский <- c(90, 88, 82)
# Вычислить общий балл каждого студента
total <- mapply(function(n, m, e) {
paste(n, "Общий балл:", m + e)
}, names, math, english)
print("Общий балл каждого человека:")
print(total)
result <- mapply(seq, from = c(1, 10, 100),
в = c(3, 15, 105))
print("Сгенерированные последовательности:")
print(result)
# Обработка нескольких аргументов поэлементно
names <- c("Чжан Сань", "Ли Сы", "Ван У")
math <- c(88, 92, 76)
английский <- 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