[英]R: Generating random points with different mean and sd for each attribute
除了使用循环,R中还有其他方法可以使用矩阵列的不同均值和标准偏差来创建矩阵吗?
例如,我想创建一个3x4矩阵,该矩阵表示3个点,每个点具有4个属性,这样每一列(每个属性)都有自己的均值和sd。
是的,您可以没有循环。 利用R中的矩阵以列大顺序存储的事实,并复制均值和sd向量以进行匹配。
means <- c(1, 10, 100, 1000)
sds <- c(0.1, 1, 10, 100)
rows <- 3
cols <- 4
m <- matrix(rnorm(rows*cols, m=rep(means, each=rows), s=rep(sds, each=rows)),
rows, cols)
m
[,1] [,2] [,3] [,4]
[1,] 0.9993278 11.694798 105.53191 841.2182
[2,] 0.8945916 9.556729 92.90462 1212.6817
[3,] 0.9889313 10.088022 113.67009 991.2138
我不确定您在寻找什么,但这可能会有所帮助:
matrix(c(x = rnorm(n=3,mean=0.5,1),
y = rnorm(n=3,mean=2, 4),
z = rnorm(n=3, mean=3.5, 10),
a= rnorm(n=3,mean=5,12)),nrow=3,ncol=4)
[,1] [,2] [,3] [,4]
[1,] 0.7876793 2.9456827 8.082376 -3.065875
[2,] -0.9956971 4.2766553 14.178532 -5.003888
[3,] 2.1224071 0.7110594 6.744876 -11.006110
注意:由于数据是随机生成的,因此您可能会下注不同的结果。 每列都有自己的平均值和标准偏差。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.