我需要在R中创建一组100个随机(x,y)点,它们是高斯的。我该怎么做?
答案 0 :(得分:5)
查看MASS包中的mvrnorm
函数
library(MASS)
Sigma <- matrix(c(10,3,3,2),2,2) # Covariance Matrix
set.seed(1) # For the example to be reproducible
Random_XY <- mvrnorm(n=100, c(0, 0), Sigma) # Random (x,y) from a Gaussian distr.
head(Random_XY)
[,1] [,2]
[1,] 2.3299984 -0.4196921
[2,] -0.2261965 -1.2474779
[3,] 2.3538800 1.7025069
[4,] -4.9527947 -1.8730622
[5,] -1.0148272 -0.4114252
[6,] 2.0557678 2.4378417
修改强>
由于高斯过程的均值为0且方差为1且为零,因此正确答案应为:
mvrnorm(n=100, c(0, 0), diag(c(1,1)))
均值向量为c(0,0)
且单位协方差矩阵diag(c(1,1))
正如@Ben Bolker所指出的,最快的方法(使用R Base功能)是:
data.frame(x=rnorm(100),y=rnorm(100))