Как передать параметр в картографическую функцию мурлыкания без использования формулы? - PullRequest
0 голосов
/ 02 июня 2019

Я слежу за онлайн-книгой Хэдли Уикхема «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)
...