我正在尝试创建一个矩阵 n
来自 k
与 k
mvn 使用循环协变量。
很简单,但到目前为止还没有工作......这是我的代码:
n=1000
k=5
p=100
mu=0
sigma=1
x=matrix(data=NA, nrow=n, ncol=k)
for (i in 1:k){
x [[i]]= mvrnorm(n,mu,sigma)
}
缺少了什么?
最佳答案
我在这里看到几件事:
set.seed(20430)
)。这意味着每次运行代码时,您将获得完全相同的伪随机变量集。 mu = 0
和 sigma = 1
,因为这些是 rnorm()
的默认值. data=
直接添加它们。 matrix()
中的参数功能。如果您确实致力于使用循环,那么您可能应该使用双循环,以便您在列上循环,并且在每个循环内,在行上循环。 (请注意,这是在 R 中编码的一种非常低效的方式——尽管我一直都在做这样的事情 ;-)。 p
应该在你的代码中做。 这是做您似乎想要做的事情的基本方法:
set.seed(20430)
n = 1000
k = 5
dat = rnorm(n*k)
x = matrix(data=dat, nrow=n, ncol=k)
如果你真的想使用循环,你可以这样做:
mu = 0
sigma = 1
x = matrix(data=NA, nrow=n, ncol=k)
for(j in 1:k){
for(i in 1:n){
x[i,j] = rnorm(1, mu, sigma)
}
}
关于r - 用循环填充矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14685911/