Отображение вектора для функционирования в симуляции

#r

#r

Вопрос:

При моделировании 10 наборов нормально распределенных чисел первые два способа понятны. В первом случае rnorm используется 1:10 как средство. Но в третьем, какая функция 1:10 выполняет? это просто репликация map 10 раз? В map2 том, что будут делать первый и второй 1:10 . Любая помощь?

 library(tidyverse)
map(1:10, ~ rnorm(10, .)) %>% map_dbl(mean)
#>  [1] 1.228481 1.598655 3.390027 3.881330 4.981230 5.534035 6.838245 7.690397
#>  [9] 7.969407 9.461679
rerun(10, rnorm(10)) %>% map_dbl(mean)
#>  [1]  0.10263879 -0.15584495  0.14294670  0.05466051  0.43497316  0.30814623
#>  [7] -0.13173104  0.47359807 -0.33331884 -0.49655876

#doubtful
map(1:10, ~ rnorm(10)) %>% map_dbl(mean)
#>  [1]  0.09157949  0.17883133  0.06443145  0.15372693  0.29376735  0.50717543
#>  [7] -0.41395627  0.15125954  0.19700380  0.21262708
map2(1:10, 1:10, ~rnorm(10, .)) %>% map_dbl(mean)
#>  [1]  0.9173579  1.7272657  2.4175854  4.2008470  4.5153217  6.5849078
#>  [7]  7.0574423  8.4102611  9.2362719 10.0684648
 

Комментарии:

1. Третий просто реплицируется rnorm(10) десять раз, поскольку .x аргумент не используется. Четвертый эквивалентен первому, поскольку .y аргумент не используется.

2. Но в следующем map2(16:25, 1:10, ~rnorm(10, .)) %>% map_dbl(mean) я получаю средства от 16 до 25. Так 1:10 что я чувствую, что у него есть некоторая функциональность. Он предоставляет средства rnorm , а второй 1:10 реплицирует. Я никогда не знаю map , используется ли для репликации.

3. @RamakrishnaS попробуйте map2(.x = 16:25, .y = 1:10, ~rnorm(n = .y, mean = .x)) , и вы должны получить более четкое представление о том, что происходит. Если вы не используете .y , то map2 не используете второй аргумент.

4. @AllanCameron Я попробовал ваш подход, но этот код генерирует разное количество средних значений от 1 до 10. т. Е. Первое моделирование имеет только 1 среднее значение, второе — 2 и так далее. map2(.x = 16:25, .y = 1:10, ~rnorm(10, mean = .x)) это дает желаемый результат, но я не знаю, где .y используется. Я думаю, он просто используется для репликации.

5. @RamakrishnaS да, предложенный мной код был не заменой вашему, а способом понять, что делает map2 и как он работает