这里有什么问题?
datMat <- matrix(runif(40,1,20),ncol=4)
datMat[,5]=rep(1,nrow(datMat))
输出:
Error in `[<-`(`*tmp*`, , 5, value = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1)) :
subscript out of bounds
为什么我不能添加新列?
答案 0 :(得分:1)
您正在尝试引用矩阵中尚不存在的列。您可以通过
将列添加到矩阵中 datMat = cbind(datMat,rep(1,nrow(datMat)))
但这效率低下。最好用0或NA创建一个完整的矩阵,然后再添加条目,如:
datMat = matrix(c(runif(40,1,20),rep(NA,10)),ncol=5,byrow=F)
datMat[,5] = rep(1,nrow(datMat))