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

 inM <- inM[-idx,]

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

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

最佳答案

您可以使用 if 函数避免 ?setdiff:

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

关于根据索引在循环中删除矩阵的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16209468/

10-11 04:52