4

在一个循环中,我根据测试识别行。我使用它们的索引(idx)迭代地从原始矩阵(inM)中删除这些行:

 inM <- inM[-idx,]

有时,idx 为空,即没有行满足测试,因此 idx 是整数(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 回答