在循环中,我根据测试识别行。我使用它们的索引(idx)迭代地从原始矩阵(inM)中删除这些行:
inM <- inM[-idx,]
有时,idx为空,即没有行满足测试,因此idx的类型为整数(0)。 从inM中删除idx然后给出一个空矩阵而不是相同的矩阵。结果,我得到了一个空矩阵用于以下迭代...
是否有单线解决方案来避免这种情况?
答案 0 :(得分:4)
您可以使用if
功能来避免?setdiff
:
inM <- inM[setdiff(1:nrow(inM), idx), ]
答案 1 :(得分:0)
您可以在循环中添加条件,例如:
if (length(idx)==0)
next
如果没有要删除的行,则传递给下一次迭代。