Как использовать функцию map() в r (с примерами)


Функцию map() пакета purrr в R можно использовать для применения функции к каждому элементу вектора или списка и соответствующего возврата списка.

Эта функция использует следующий базовый синтаксис:

карта(.x, .f)

Золото:

  • .x : вектор или список
  • .f : функция

Следующие примеры показывают, как использовать эту функцию в различных сценариях.

Пример 1. Используйте map() для генерации случайных величин.

Следующий код показывает, как использовать функцию map() для генерации трех случайных величин, каждая из которых содержит пять значений, которые соответствуют стандартному нормальному распределению:

 library (purrr)

#definevector
data <- 1:3

#apply rnorm() function to each value in vector
data %>%
  map( function (x) rnorm(5, x))

[[1]]
[1] 0.0556774 1.8053082 2.6489861 2.2640136 1.1062672

[[2]]
[1] 1.450175 1.123048 3.413677 3.055304 2.713801

[[3]]
[1] 2.936732 2.157129 3.693738 2.994391 2.567040

Для каждого элемента исходного вектора функция map() применила функцию rnorm() для генерации пяти случайных значений из стандартного нормального распределения .

Пример 2. Используйте map() для преобразования каждого значения в вектор.

Следующий код показывает, как использовать функцию map() для вычисления квадрата каждого значения в векторе:

 library (purrr)

#definevector
data <- c(2, 4, 10, 15, 20)

#calculate square of each value in the vector
data %>%
  map( function (x) x^2)

[[1]]
[1] 4

[[2]]
[1] 16

[[3]]
[1] 100

[[4]]
[1] 225

[[5]]
[1] 400

Для каждого элемента исходного вектора функция map() применяла функцию, вычисляющую квадрат каждого значения.

Пример 3. Используйте функцию map() для вычисления среднего значения каждого вектора в списке.

Следующий код показывает, как использовать функцию map() для вычисления среднего значения каждого вектора в списке:

 library (purrr)

#define list of vectors
data <- list(c(1, 2, 3),
             c(4, 5, 6),
             c(7, 8, NA))

#calculate mean value of each vector in list
data %>%
  map(mean, na. rm = TRUE )

[[1]]
[1] 2

[[2]]
[1] 5

[[3]]
[1] 7.5

Для каждого вектора в списке функция map() вычисляет среднее значение.

По результату мы видим:

  • Среднее значение первого вектора в списке равно 2 .
  • Среднее значение второго вектора в списке равно 5 .
  • Среднее значение третьего вектора в списке — 7,5 .

Примечание . Аргумент na.rm=TRUE сообщает R игнорировать значения NA при вычислении среднего значения.

Дополнительные ресурсы

В следующих руководствах объясняется, как использовать другие распространенные функции в R:

Как использовать функцию Tapply() в R
Как использовать функцию dim() в R
Как использовать функцию table() в R
Как использовать функцию Sign() в R

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *