mat <- matrix(0,ncol=6, nrow=100)
d=c(1,2,4,8,16,32)
for(i in 1:6)
{
for(j in d)
{
mat[,i]=rep(j,100)
}
}
mat
我应该得到一个100 x 6的矩阵,其中1,2,4,8,16,32列。但是,我只是在每列中获得32行。有谁知道如何解决这个问题。我确实想要使用循环,即使它的一个循环很好。
答案 0 :(得分:0)
根据您的描述:100行x 6列,第1列=值1 ...第6列=值32,这应该生成您想要的内容。
matrix(data = rep(c(1,2,4,8,16,32), each = 100),
nrow = 100,
ncol = 6)
答案 1 :(得分:0)
@neilfws的答案更优雅。如果您因某种原因致力于使用循环,则可以执行此操作
mat <- matrix(0,ncol=6, nrow=100)
d=c(1,2,4,8,16,32)
for(i in 1:6)
{
j <- d[i]
mat[,i]=rep(j,100)
}
mat
问题是你在每列中循环遍历所有d。