如何在R中创build一个空matrix?

我是R新手。我想用我的for循环使用cbind的结果来填充一个空matrix。 我的问题是,如何消除matrix第一列中的NAs。 我在下面列出了我的代码:

output<-matrix(,15,) ##generate an empty matrix with 15 rows, the first column already filled with NAs, is there any way to leave the first column empty? for(`enter code here`){ normF<-`enter code here` output<-cbind(output,normF) } 

输出是我期望的matrix。 唯一的问题是,它的第一列填补了新手。 我怎样才能删除这些NA?

非常感谢!

matrix的默认matrix是1列。 要明确地有0列,你需要写

 matrix(, nrow = 15, ncol = 0) 

一个更好的方法是预先分配整个matrix,然后填充它

 mat <- matrix(, nrow = 15, ncol = n.columns) for(column in 1:n.columns){ mat[, column] <- vector } 

如果您不知道列的数量,请将每列添加到列表中,并在结尾处添加cbind

 List <- list() for(i in 1:n) { normF <- #something List[[i]] <- normF } Matrix = do.call(cbind, List) 

因为速度很慢,所以我会谨慎的解雇某个坏主意。 如果它是代码的一部分,不需要太多的时间来执行,那么慢度是不相关的。 我只使用了下面的代码:

 for (ic in 1:(dim(centroid)[2])) { cluster[[ic]]=matrix(,nrow=2,ncol=0) } # code to identify cluster=pindex[ip] to which to add the point if(pdist[ip]>-1) { cluster[[pindex[ip]]]=cbind(cluster[[pindex[ip]]],points[,ip]) } 

对于运行时间不到1秒的问题。