[R語言常用函式]生成隨機數
阿新 • • 發佈:2019-01-06
服從正態分佈的隨機數
rnorm(n,mean=0,sd=1)
如果想要生成一個長度為10的向量,向量中的每個值服從標準正態分佈,那麼可以這樣寫
> rnorm(10)
[1] -0.7125585 2.2070410 1.4730548 -0.6655749 0.5349409 -0.9700122 0.4970766
[8] -1.7385672 0.9300553 -0.4663140
另外,該函式也可以生成服從一般正態分佈的隨機數,例如
> rnorm(10,mean=1,sd=4) [1] -2.520978 3.567172 1.099416 1.029909 -1.239032 1.363111 0.670465 [8] 4.015274 -7.095845 3.050106
其中mean表示均值,sd表示標準差。
此外,還有其他三個函式,dnorm,pnorm,qnorm。在如上兩種基本用法中只是名字有所不同,效果是一樣的。當然這三個函式還有自己相應的特殊用法,可以通過help(dnorm)進行查詢。
服從均勻分佈的隨機數
runif(n, min = 0, max = 1)
生成一個長度為10的向量,向量中的每個值服從0~1區間上的均勻分佈,那麼可以這樣寫
> runif(10) [1] 0.68835411 0.14208554 0.53551407 0.30101879 0.64202722 0.06249627 0.80834355 [8] 0.26193046 0.90841919 0.94294355
另外,也可以生成其他區間上的隨機數,例如
> runif(10,min=5,max=10)
[1] 7.771348 8.747055 8.721152 7.517620 6.084385 5.209369 5.532953 5.845175
[9] 6.683199 9.708647
同樣的,runif也有其他三個函式,dunif,punif,qunif。
其他
除了生成最常見的均勻分佈隨機數和正態分佈隨機數,R還提供了其他各種函式用以生成服從不同分佈的隨機數,常見的函式如下。
rexp | 指數分佈 |
rf | F分佈 |
rgamma | Gamma分佈 |
rgeom | 幾何分佈 |
rhyper | 超幾何分佈 |
rlnorm | 對數正態分佈 |
rlogis | Logistic分佈 |
rmultinom | 多項分佈 |
rnbinom | 負二項分佈 |
rpois | 泊松分佈 |
rt | t分佈 |
rchisq | 卡方分佈 |
參考
http://bbs.pinggu.org/thread-193449-1-1.html