R:如何在R中的矩阵中解决这个错误索引?

时间:2014-07-14 06:27:59

标签: r matrix

我有一个矩阵可以减少每个循环一列,另一个'b'矩阵,每个循环保持从矩阵'a'中丢失的列的值。问题是当矩阵只剩下一列时,无法通过这种方式访问​​a [,1],然后得到错误Error in a[, 1] : incorrect number of dimensions。有办法解决这个问题吗?

a<- matrix(2,4,4);
b<- matrix(numeric(0),nrow(a),2);

i<- 1;

for ( i in 1:(ncol(a)-1)){
  a<- a[,1]*a[,-1];
  b[,i]<- a[,1];

}

1 个答案:

答案 0 :(得分:1)

当矩阵上的索引结果产生单个向量时,默认行为是删除维度并返回一个简单向量。如果要保留结果的“矩阵”,则需要将drop=F添加到索引

a<- matrix(2,4,4);
b<- matrix(numeric(0),nrow(a),3);

i<- 1;

for ( i in 1:(ncol(a)-1)){
  a<- a[,1]*a[,-1, drop=F];
  b[,i]<- a[,1];
}