2017-10-25 11 views
0

나는 아래의 매개 변수를 기반으로 바이너리 클래스 번호 목록을 변환하려고 해요 이진 클래스 :번호 목록을 지정 R

이 값이 그때보다 3 0

경우 값이 3보다 작거나 3보다 작 으면

현재 다음과 같이 else 명령을 추가했습니다. 그러나 이것은 오류로 다시 돌아옵니다.

if (df$DaysOverdue[df$daysoverdue == ">3"]) { 
df$DaysOverdue[df$DaysOverdue] <- 0 
} 
else { 
df$DaysOverdue[df$DaysOverdue] <- 1 
} 
+1

어쩌면 단지'안양 $ DaysOverdue <- ifelse (DF $ DaysOverdue> 3,0,1)'. '? ifelse' 도움말 페이지를보십시오. [재현 가능한 예제] (https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)가 도움이 될 것입니다. "> 3"에 대한 정확한 문자 일치를 수행하는 것이 이상하게 보입니다. – MrFlick

+1

아니면'df $ DaysOverdue <- as.integer (df $ DaysOverdue> 3)'입니다. – lmo

+1

'daysoverdue/DaysOverdue'라는 질문에 오타가 있습니다. –

답변

0

이이만큼 쉬워야한다 :

df$DaysOverdueBin[df$DaysOverdue > 3] <- 0 
df$DaysOverdueBin[df$DaysOverdue <= 3] <- 1 
+0

이것은 정확히 내가 검색 한 내용이었습니다. 감사합니다. –

1

여기 tidyverse 사용하여 간단한 해결책 :

library(tidyverse) 
df %>% 
    mutate(`Overdue <= 3 Days` = as.numeric(DaysOverdue <= 3))