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,]'와 같이 지정해야합니다. – joran
... 비록이 코드가 고정 된 조각으로도 예상했던대로 작동한다는 것은 분명하지 않습니다. – joran
한 라운드에서 'k'줄을 제거하면 다음 라운드에서 'j'가 마지막 'k'가됩니다. 따라서 데이터 프레임은 for 루프 범위에서 지정한 수의 줄로 끝나지 않으므로 'subscript out of bounds'오류가 발생합니다. 그래서 @ anans가 말했듯이, 당신은 당신의 코드를 재구성하는 것을 고려할 것입니다. – Facottons