Як використовувати функцію map() у r (з прикладами)


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

Ця функція використовує такий базовий синтаксис:

map(.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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *