生成范围内的rnorm()数据

时间:2018-06-16 10:32:17

标签: r

如何在10-15的范围内生成随机分布的数据? 我尝试了这个,但是,大多数数据只有10秒。

library(MCMCglmm)

x=matrix(rtnorm(n = 100, lower = 10, upper = 15), nrow=10, ncol=10)

这是矩阵的一部分:

        [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]     [,9]    [,10]
 [1,] 10.01323 10.09077 10.12173 10.21363 10.14710 10.07159 10.19811 10.16515 10.14877 10.13405
 [2,] 10.10269 10.08853 10.07679 10.21932 10.15413 10.00907 10.00788 10.06476 10.06058 10.09998
 [3,] 10.00339 10.02658 10.05871 10.03135 10.07163 10.03250 10.08346 10.17975 10.10160 10.12360
 [4,] 10.00334 10.07949 10.00456 10.04519 10.11282 10.06135 10.05492 10.10164 10.13717 10.00696
 [5,] 10.12996 10.07651 10.25793 10.10667 10.14016 10.02615 10.02722 10.16351 10.28760 10.06861

如图所示,大多数数据是10s no 15s。

1 个答案:

答案 0 :(得分:4)

您可能希望将平均值更改为范围的中间值;它默认为零。

library(MCMCglmm)
set.seed(101)
par(mfrow=c(1,2))
hist(rtnorm(1e5,lower=10,upper=15),col="gray",main="mean=0")
hist(rtnorm(1e5,mean=12.5,lower=10,upper=15),col="gray",main="mean=12.5")

enter image description here

在回答您修改后的问题时,可能

rtnorm(n, mean = x%*%beta+8, sd = 2, lower=10, upper=15)

会奏效。