R:For循环只执行一次

R:For循环只执行一次,r,for-loop,R,For Loop,为什么下面的代码只运行一次 for ( i in length( which( rowSums( m ) != 1 ) ) ) { m[which( rowSums( m ) != 1 )[i], ncol( m )] <- 1 print(i) } for(长度为i(其中行和(m)!=1))){ m[其中(行和(m)!=1)[i],ncol(m)]它应该是1:length(其中(行和(m)!=1)) 您希望迭代循环中的向量。它应该是1:length(其中

为什么下面的代码只运行一次

  for ( i in length( which( rowSums( m ) != 1 ) ) ) {
      m[which( rowSums( m ) != 1 )[i], ncol( m )] <- 1
      print(i)
  }
for(长度为i(其中行和(m)!=1))){

m[其中(行和(m)!=1)[i],ncol(m)]它应该是
1:length(其中(行和(m)!=1))


您希望迭代循环中的向量。

它应该是
1:length(其中(行和(m)!=1))


您希望迭代循环中的向量。

最好沿
函数使用
seq_len
seq_,而不是
1:length(
因为如果长度正好是0呢?谢谢,我错过了。但是似乎还是有问题,因为只有最后一个值被更改为1。所有其他值都和以前一样。@GregSnow,您给出了一个有效的点。如果长度为零,它将对
seq_leng
抛出错误,但对
1:length则不会(
所以我想这取决于OP.@JimBoy,试着打印向量,看看里面有什么。最好使用
seq_len
seq_沿着
函数,而不是
1:length(
因为如果长度正好是0呢?谢谢,我错过了。但是似乎还是有问题,因为只有最后一个值被更改为1。所有其他值都和以前一样。@GregSnow,您给出了一个有效的点。如果长度为零,它将对
seq_leng
抛出错误,但对
1:length则不会(
所以我想这取决于OP.@JimBoy,试着打印向量,看看里面有什么