2013-07-16 4 views

답변

0

난 당신이 찾고있는 것을 확실하지 오전하지만이 도움이 될 수 있습니다 :

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 

참고 : 데이터가 무작위로 생성되는대로 다른 결과를 내기 수 있습니다. 각 열은 고유 한 평균 및 표준 편차를가집니다.

1

예, 루프없이 수행 할 수 있습니다. 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 
+0

이 방법으로 많은 행렬을 만들려는 경우이 기능을 쉽게 사용할 수 있습니다. –