在循環中,我根據測試識別行。我迭代地利用其指數(IDX)原始矩陣(INM)除去的那些行:根據索引刪除循環中的矩陣行
inM <- inM[-idx,]
有時,IDX是空的,即沒有行滿足測試,從而IDX是整數類型(0)。 從inM中刪除idx會給出一個空矩陣,而不是相同的矩陣。因此,我得到一個空矩陣爲下面的迭代...
是否有一個單線解決方案,以避免這種情況?
在循環中,我根據測試識別行。我迭代地利用其指數(IDX)原始矩陣(INM)除去的那些行:根據索引刪除循環中的矩陣行
inM <- inM[-idx,]
有時,IDX是空的,即沒有行滿足測試,從而IDX是整數類型(0)。 從inM中刪除idx會給出一個空矩陣,而不是相同的矩陣。因此,我得到一個空矩陣爲下面的迭代...
是否有一個單線解決方案,以避免這種情況?
您可以通過使用?setdiff
功能避免if
:
inM <- inM[setdiff(1:nrow(inM), idx), ]
,你可以在你的循環添加一個條件,例如:
if (length(idx)==0)
next
這樣如果沒有要刪除的行傳遞給下一次迭代。
謝謝!有沒有辦法避免'如果'? – WAF 2013-04-25 08:15:01
是,添加一個條件,以檢查是否IDX是空的。 – 2013-04-25 08:07:20