2013-05-01 2 views
1

"월요일", "화요일", "금요일"= 0 및 "토요일"/ "일요일"= 1과 같은 숫자 값을 사용하여 주말과 주중을 코딩하려고합니다.논리 연산자를 사용하여 값 할당

head(bike.d)

Day Day.Code 
    Sunday  4 
    Sunday  4 
    Sunday  4 
    Sunday  4 
    Sunday  4 
    Sunday  4 

꼬리 (bike.d) 내가 수치를 사용하여 날 열 코딩 한

Day Day.Code 
    Saturday 3 
    Saturday 3 
    Saturday 3 
    Saturday 3 
    Saturday 3 
    Saturday 3 

:

01,236,690,729를 현재 다음과 같은 데이터가

어디 금요일 = 1, 월요일 = 2, 토요일 = 3, 일요일 = 4, 목요일 = 5, 화요일 = 6, 수요일 = 내가 가진 이진 값을 할당하는 논리 연산자를 사용하는 것을 시도했다 7.

평일 = 0과 주말 = 1. 나는 다음과 같은 인수의 변화를 시도했다, 그러나 나는 다음과 같은 출력 얻을 :

bike.d[,2 == 3|4]=1 

head(bike.d) 

    Day Day.Code 
    1   1 
    1   1 
    1   1 
    1   1 
    1   1 
    1   1 

tail(bike.d)

Day Day.Code 
    1   1 
    1   1 
    1   1 
    1   1 
    1   1 
    1   1 

나는이 인수를 만들 수있는 방법이 있나요을되도록 텍스트 '일'항목의 값은 보존 되었습니까? 그래서 이진 코드가 Day.code 열에 입력되거나 새로운 열로 입력됩니다.

도움 주셔서 감사합니다.

+0

당신이 예를 재현 할 수 있습니까? http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example –

+0

'병합'을 보면 삶이 편하게됩니다. – flodel

답변

1

ifelse 정확히 당신이 여기에서 필요로하는 무슨 (그것을 할 많은 다른 방법이) 있어야한다 :

bike.d$Weekend <- ifelse(bike.d$Day.Code == 3 | bike.d$Day.Code == 4 , 1 , 0) 

예 :

bike.d<- data.frame(Day = rep(weekdays(Sys.Date()+1:7) , each = 2) , Day.Code = rep(1:7 , each = 2)) 
bike.d$Weekend <- ifelse(bike.d$Day.Code == 3 | bike.d$Day.Code == 4 , 1 , 0) 
bike.d 
#  Day Day.Code Weekend 
#1 Thursday  1  0 
#2 Thursday  1  0 
#3  Friday  2  0 
#4  Friday  2  0 
#5 Saturday  3  1 
#6 Saturday  3  1 
#7  Sunday  4  1 
#8  Sunday  4  1 
#9  Monday  5  0 
#10 Monday  5  0 
#11 Tuesday  6  0 
#12 Tuesday  6  0 
#13 Wednesday  7  0 
#14 Wednesday  7  0 
+0

입력 해 주셔서 감사합니다. 다음과 같은 오류가 계속 발생합니다 : '$ <-. data.frame' ('* tmp *', "Weekend", value = logical (0)) 오류 : 대체 값은 0입니다. 행, 데이터는 74847 – user2339597

+0

@user2339597입니다. 이는 실행 한 명령 및 데이터 구조가 많지 않음을 의미하지는 않습니다. R'dput (head (bike.d, n = 30))에서이 명령을 실행하여 결과를 출력하십시오. –