2013-02-12 64 views

回答

5

看看mvrnorm函数从MASS包

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 

EDIT

由于高斯过程均值为0,方差为1和零相关,正确答案应该是:

mvrnorm(n=100, c(0, 0), diag(c(1,1))) 

如果means的向量是c(0,0)和酉协方差矩阵diag(c(1,1))

由于@Ben Bolker指出,去(用R基本功能)的最快方法是:

data.frame(x=rnorm(100),y=rnorm(100)) 
+2

的OP可能(他们不说)希望*独立*法线,在这种情况下,他们可以更容易地使用'data.frame(x = rnorm(100),y = rnorm(100))' – 2013-02-12 13:46:08

+1

是的,@Ben Bolker你是对的,如果OP想绘制iid正常值,那么'data.frame (x = rnorm(100),y = rnorm(100))是你提到的最简单的方法。 – 2013-02-12 13:48:41

+2

或'matrix(rnorm(200),ncol = 2)'调用rnorm一次...... – agstudy 2013-02-12 14:27:35