繁体   English   中英

以均匀分布生成 30 行 500 个随机数

[英]Generate 500 random numbers in 30 rows with uniform dist

尝试执行以下操作。 生成具有均匀 (0,1) 分布的 500 个随机数的 30 行。

但它只有整数,当我需要带小数位的数字时。

您的runif命令不正确。 做 :

df<-data.frame(replicate(60,runif(300,0,1)))

正如 Tim 和 Roland 所指出的,最好(更快)使用:

df<-matrix(runif(60*300),ncol=60)

对于runif ,第一个参数是观察次数,然后是最小值,然后是最大值,用逗号分隔。

 df[1:5,1:5]
         X1         X2        X3        X4        X5
1 0.4375043 0.76986901 0.1154772 0.8861121 0.0275067
2 0.4024352 0.19291795 0.7496475 0.5159706 0.8768299
3 0.3164539 0.02212373 0.2091863 0.2792025 0.5175030
4 0.2496215 0.51070780 0.8462652 0.2604232 0.9109863
5 0.8450932 0.68503812 0.2391174 0.0220619 0.4943907

至于你的指数分布,如果我是对的,如果 U 是 0 和 1 之间的均匀分布,那么 -ln(U)/lambda 是具有 lambda 参数的指数分布。 ln 函数是在 R 中log

使用以下代码:

require(fitdistrplus)
set.seed(1)
df<-runif(100000,0,1)
df<-(-log(df))
png('fit.png')
descdist(df)
dev.off()

你得到这个图:数据似乎遵循指数分布(正如预期的那样)

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM