[英]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.