R 用循环填充矩阵
我试图通过R 用循环填充矩阵,r,simulation,matrix,R,Simulation,Matrix,我试图通过k和kmvn协变量使用循环创建矩阵n。 非常简单,但到目前为止还不起作用。。。这是我的密码: 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))。这意味着每次运行代码时,都会得到
k
和k
mvn协变量使用循环创建矩阵n
。
非常简单,但到目前为止还不起作用。。。这是我的密码:
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()
的默认值李>
matrix()
函数中的data=
参数直接添加它们即可。如果您确实致力于使用循环,那么您可能应该使用双循环,以便在列上循环,在每个循环中,在行上循环。(注意,这是一种在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)
}
}
A=c(2,3,4,5)#在您的情况下,行术语
B=c(3,4,5,6)#在您的案例中,列术语
x=矩阵(,nrow=长度(A),ncol=长度(B));
(i在1中:长度(A)){
对于(j/1:长度(B)){
x[i,j]首先定义矩阵
E<-matrix(data=0, nrow=10, ncol=10);
矩阵不是那样工作的。请尝试使用x[,i]
而不是x[[i]]
。不使用循环的简单方法是x
E<-matrix(data=0, nrow=10, ncol=10);
for (i in 1:10)
{
for (j in 1:10)
{
if (i==j) {E[i,j]=1}
else {E[i,j]=0.6}
}
};