Як використовувати функцію 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