当我rnorm
将单个值称为均值时,很明显会发生什么:从 Normal(10,1) 生成一个值。
y <- rnorm(20, mean=10, sd=1)
但是,我看到整个向量被传递给rnorm
(或rcauchy
等)的例子;在这种情况下,我不确定 R 机器的真正作用。例如:
a = c(10,22,33,44,5,10,30,22,100,45,97)
y <- rnorm(a, mean=a, sd=1)
有任何想法吗?
当我rnorm
将单个值称为均值时,很明显会发生什么:从 Normal(10,1) 生成一个值。
y <- rnorm(20, mean=10, sd=1)
但是,我看到整个向量被传递给rnorm
(或rcauchy
等)的例子;在这种情况下,我不确定 R 机器的真正作用。例如:
a = c(10,22,33,44,5,10,30,22,100,45,97)
y <- rnorm(a, mean=a, sd=1)
有任何想法吗?
生成的随机数的数量rnorm
等于 a 的长度。来自?rnorm
:
n:观察次数。如果'length(n) > 1',则将长度视为所需的数字。
要查看a
传递给 mean 参数时发生了什么,如果我们更改示例会更容易:
a = c(0, 10, 100)
y = rnorm(a, mean=a, sd=1)
[1] -0.4853138 9.3630421 99.7536461
所以我们length(a)
用 mean 生成随机数a[i]
。
一个更好的例子:
a <- c(0,10,100)
b <- c(2,4,6)
y <- rnorm(6,a,b)
y
结果
[1] -1.2261425 10.1596462 103.3857481 -0.7260817 7.0812499 97.8964131
如您所见,对于y的第一个和第四个元素,rnorm将 a 的第一个元素作为均值,将b的第一个元素作为sd。
对于y的第二个和第五个元素,rnorm将 a 的第二个元素作为均值,将b的第二个元素作为sd。
对于y的第三个和第六个元素,rnorm将 a 的第三个元素作为均值,将b的第三个元素作为sd。
您可以在rnorm的第一个参数中尝试不同的数字,看看发生了什么
例如,如果您使用 5 而不是 6 作为调用rnorm的第一个参数,会发生什么情况?