#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 и как он работает