4

ループでは、テストに基づいて行を識別します。インデックス (idx) を使用して、元の行列 (inM) からこれらの行を繰り返し削除します。

 inM <- inM[-idx,]

場合によっては、idx が空になることがあります。つまり、テストを満たす行がないため、idx は integer(0) 型になります。inM から idx を削除すると、同じ行列ではなく空の行列が得られます。その結果、次の反復で空の行列を取得しました...

それを避けるためのワンライナーソリューションはありますか?

4

2 に答える 2

4

if関数を使用して回避でき?setdiffます:

inM <- inM[setdiff(1:nrow(inM), idx), ]
于 2013-04-25T08:19:49.240 に答える
0

たとえば、ループに条件を追加できます。

if (length(idx)==0)
  next

このように、削除する行がない場合は、次の反復に渡します。

于 2013-04-25T08:13:19.850 に答える