2015-04-01 52 views
0

在R包中,我想从具有不同种子的Nnorm分布中绘制数字。我已经完成了循环。种子由310个观察值的每个向量值设置。不幸的是,我得到了如下警告:“替换后的数量不是......的倍数”。当我设置恒定的种子时,它可以工作在循环中设置不同的种子,导致R中的警告

CODE:

mojaCharyzma = 2 * (3 + 6 + 4 + 6 + 4 + 8) 
seed = dane$id_student 

leader = matrix(0,310,1) 

for(i in (1:310)) 
{ 
    set.seed(seed[i]) 
    leader[i,1] = rnorm(n = nrow(dane), mean = mojaCharyzma, sd = 7) 
} 

回答

2

我不确定你想用这个完成什么。你的矩阵只有一列,所以为什么不做

leader <- matrix(rnorm(n = nrow(dane), mean = mojaCharyzma, sd = 7), ncol=1) 
+0

不断重置你的随机种子是一个坏主意。它可以毁掉你所希望的分配。每次都有重新设置种子的特殊原因吗? – jwilley44 2015-04-02 00:03:45

+0

我需要从1:310每次设置它。这是锻炼,我必须这样做。 – DKM 2015-04-02 00:26:20

2

的问题是在这里:

n = nrow(dane) 

我想这nrow(丹麦)> 1?例如,如果nrow(dane)是10,那么rnorm()将返回10个值。但是,您希望将所有的十个值放入一个单个矩阵单元,称为leader[i,1]。那当然不可能。 将其更改为

n = 1 

否则该矩阵分配不会工作。

注:种子应该对问题没有影响。