8.3 Random Normal Distribution Deviate
Rnorm
## function (n, mu = 0, sigma = 1)
## {
## Res = vector(length = n + 1)
## i = 1
## while (i <= n) {
## x = runif(2)
## v = 2 * x - 1
## w = sum(v * v)
## if (w < 1) {
## y = sqrt(-2 * log(w)/w)
## Res[i:(i + 1)] = mu + sigma * y * v
## i = i + 2
## }
## }
## return(Res[1:n])
## }
## <bytecode: 0x000001e2a4402218>
## <environment: namespace:math>
Test script
Rnorm(1)
## [1] 0.9562
Rnorm(2)
## [1] -0.11647 -0.03994
Rnorm(99)
## [1] 0.5856808 -1.0099791 1.1415792 -1.1675802 -2.6265732 1.0998697 1.4434678
## [8] 0.6906391 -0.4947883 1.1670436 -0.2566954 -0.8434067 -0.0002181 -1.1702060
## [15] 0.5468796 -0.9533570 -0.2190177 2.5064887 0.1911252 -0.6484961 -1.1278117
## [22] -0.5025491 -0.3707491 -0.2605610 0.0416529 -1.8304386 0.8280114 -2.9895111
## [29] 0.2048097 1.2524160 0.7353493 0.3163717 -0.2127312 0.8259111 0.2807934
## [36] -0.6479539 -0.1379451 0.6113709 -0.0522618 0.8061326 -0.2448366 -0.1906546
## [43] -1.4712821 -1.0458844 0.0657446 -0.9875163 0.2292707 1.4545333 -0.9471162
## [50] -2.4131461 1.1506710 -1.1330126 0.3144497 -0.0965260 0.4577856 -0.2374533
## [57] 1.7141085 -0.1749232 1.0313476 -0.3385889 0.1586307 -0.7074631 -1.2596124
## [64] 0.0020458 -0.3846457 0.5459215 0.1290750 1.0152684 0.8412292 2.6653161
## [71] -0.5996816 -1.0628533 0.8660642 -0.8307214 -0.7991867 -2.6079732 0.2291646
## [78] 0.9753094 0.8731347 0.2678966 0.5203177 1.8647660 -0.1541200 0.9166391
## [85] -0.3100315 1.7064158 0.2379974 0.6829395 -0.5102269 1.0036337 0.6083766
## [92] -1.3835624 0.0463585 1.0975269 0.5565030 -0.0498206 0.9314777 0.6924161
## [99] -1.4983149
= Rnorm(10000)
x summary(x)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -3.643 -0.682 -0.017 -0.008 0.667 4.010
sd(x)
## [1] 0.9944