我想在for循環中構造一個矩陣。我聲明我的代碼中的空白矩陣稱爲矩陣1,我試圖填補這行方向與模擬的x,y和z變量:for循環矩陣構造
simulation <- function(ss){
nsim <- 100
matrix1 <- matrix(0, ncol=3, nrow=nsim)
colnames(matrix1) <- c("x", "y", "z")
for(i in 1:nsim) {
set.seed(i)
x <- relevel(as.factor(sample(1:4,ss, replace=TRUE)), ref="4")
y <- relevel(as.factor(sample(1:3,ss, replace=TRUE)), ref="3")
z <- relevel(as.factor(sample(1:2,ss, replace=TRUE)), ref="2")
matrix1[i, ] <- cbind(x, y, z)
}
return(matrix1)
}
現在,當我運行它,我得到一個錯誤:
Error in matrix1[i, ] <- cbind(x, y, z) :
number of items to replace is not a multiple of replacement length
。
我不明白爲什麼發生這種情況,因爲matrix1有3列,我用3個變量x,y和z遞歸填充它。
'cbind'用於添加列。我想你想使用'rbind'而不是 – Barranka
我的意思是(如果這不清楚),我希望將x,y,z添加到1行,然後在下一次迭代中將x,y,z添加到下面一排。因此,CBIN是有意義的。 – user3810226