Я слежу за онлайн-книгой Хэдли Уикхема «R для науки о данных» и немного запутался, когда появилась функция purrr: map. В частности, вопрос 21.5.3 (4) просит создать 10 случайных нормалей для каждого из средних (-10, 0, 10, 100), но мои попытки применить функцию с использованием карты не увенчались успехом.
Я заметил, что (в отличие от предыдущих примеров) среднее здесь служит параметром, а не объектом, к которому применяется функция. Решение использует (сокращенную) формулу обозначений. Что именно позволяет коду работать с формулой, а не с функцией, хотя объяснение предполагает, что оба они эквивалентны внутри map ()?
Данное решение:
library("tidyverse")
mu <- c(-10, 0, 10, 100)
map(mu, ~ rnorm(n = 10, mean = .))
Для меня эквивалентная функция будет выглядеть примерно так:
library("tidyverse")
mu <- c(-10, 0, 10, 100)
map(mu, rnorm(n = 10, mean = mu))
Обратите внимание, что действительно возможно использовать вектор, который передается для отображения в качестве параметра функции, например:
library("tidyverse")
map(1:5, rnorm)