根据索引删除循环中的矩阵行

时间:2013-04-25 08:05:57

标签: r

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

 inM <- inM[-idx,]

有时,idx为空,即没有行满足测试,因此idx的类型为整数(0)。 从inM中删除idx然后给出一个空矩阵而不是相同的矩阵。结果,我得到了一个空矩阵用于以下迭代...

是否有单线解决方案来避免这种情况?

2 个答案:

答案 0 :(得分:4)

您可以使用if功能来避免?setdiff

inM <- inM[setdiff(1:nrow(inM), idx), ]

答案 1 :(得分:0)

您可以在循环中添加条件,例如:

if (length(idx)==0)
  next

如果没有要删除的行,则传递给下一次迭代。