Это базовая концепция установки параметров в функции.Возьмем rnorm()
, например:
Его структура rnorm(n, mean = 0, sd = 1)
.Очевидно, что mean
и sd
- это два разных параметра, поэтому вам необходимо присвоить им соответствующие значения.Вот запутанная ситуация, в которой вы можете застрять:
arg <- c(5, 10)
rnorm(1000, arg)
Это на самом деле означает rnorm(n = 1000, mean = c(5, 10), sd = 1)
.Стандартное отклонение установлено равным 1, поскольку позиция arg
представляет параметр mean
, а вы не устанавливаете sd
дополнительно.Следовательно, rnorm()
примет значение по умолчанию от 1 до sd
.Однако что означает mean = c(5, 10)
?Давайте проверим:
x <- rnorm(1000, arg)
hist(x, breaks = 50, prob = T)
# lines(density(x), col = 2, lwd = 2)
![enter image description here](https://i.stack.imgur.com/T6Wi9.png)
Вы можете наблюдать, что случайная выборка представляет собой двухпиковое нормальное распределение и средние значенияпоявляются в 5 и 10 (на самом деле все больше не нормально).Что касается вашего вопроса, то оно должно быть:
arg <- c(5, 10)
rnorm(1000, arg[1], arg[2])
и это означает rnorm(n = 1000, mean = 5, sd = 10)
.Проверьте это еще раз, и вы получите нормальное распределение с mean = 5
и sd = 10
.
x <- rnorm(1000, arg[1], arg[2])
hist(x, breaks = 50, prob = T)
# curve(dnorm(x, arg[1], arg[2]), col = 2, lwd = 2, add = T)
![enter image description here](https://i.stack.imgur.com/RChIA.png)