Rのforループでいくつかの行を削除しようとしています。条件付きでそれを下の行と比較するので、角カッコでフィルタリングできません。変数名を使用してR内の行を削除しようとしています
定数が指定されている場合、行を削除できることがわかります:dataframe[-2, ]
。変数を使って同じことをしたいだけです:dataframe[-x, ]
。
for (j in 1:(nrow(referrals) - 1)) {
k <- j + 1
if (referrals[j, "Client ID"] == referrals[k, "Client ID"] &
referrals[j, "Provider SubCode"] == referrals[k, "Provider SubCode"]) {
referrals[-k, ]
}
}
コードは不満なく実行されますが、行は削除されません(いくつかはわかっていることがわかります)。もちろん、定数でテストすれば、うまく動作します:referrals[-2, ]
。
だけで実行されている '紹介は[-k、]'、実際には何もしません。 Rの中のものと同様に、オブジェクトを変更したい場合は、そのオブジェクトに 'referral < - referrals [-k、]'のように_assign_する必要があります。 – joran
...私は、このコードが固定されていても期待通りに動作することはわかりません。 – joran
1つのラウンドで 'k'行を削除すると、次のラウンドでは 'j'が最後の 'k'になります。したがって、あなたのデータフレームは、forループ範囲で指定した行数と同じ数で終わることはなく、 'subscript out of bounds'エラーが発生します。ですから、@ joranが言ったように、あなたはコードを再フォーマットすることを検討します。 – Facottons