해당 포스트에서는 R에서 숫자 데이터 범위에 따라 그룹을 지정하는 방법에 대해 소개합니다.
INTRO
ifelse()
함수는 R 프로그래밍 언어에서 자주 사용되는 함수 중 하나로, 간단한 조건문을 작성할 때 사용되며, if-else 문의 간단한 버전이라고 생각하시면 됩니다. 자주 사용되는 함수이기도 하지만, 쉽게 사용할 수 있어 간단한 예시 몇 개만 익히신다면 금방 마스터하실 수 있습니다.
문제 풀어보기
먼저, 0부터 12까지의 정수를 갖는 숫자 벡터인 mydata
를 생성하고, 이를 출력해 보겠습니다.
# 숫자 벡터 생성
mydata <- 0:12
# 생성된 벡터 출력
mydata
[1] 0 1 2 3 4 5 6 7 8 9 10 11 12
위에서 만든 mydata
를 가지고 ifelse()
함수를 사용하여 mydata
벡터의 값이 어떤 범위에 속하는지에 따라 "a", "b", "c", "d" 라벨(label) 또는 그룹(group)을 부여하고, 그렇지 않은 경우에는 NA
값을 반환하게 해보겠습니다.
아래 코드에서는 ifelse()
함수를 중첩 사용하여 풀이하는데, 이는
# 조건문을 사용하여 라벨 부여
ifelse(mydata < 3, "d",
ifelse(mydata < 6, "c",
ifelse(mydata < 10, "b",
ifelse(mydata >= 10, "a", NA))))
[1] "d" "d" "d" "c" "c" "c" "b" "b" "b" "b" "a" "a" "a"
코드 작동 순서
위 코드는 아래의 순서로 처리가 진행됩니다.
- mydata 벡터의 값이 3보다 작으면 "d" 라벨을 반환합니다.
- mydata 벡터의 값이 3보다 크거나 같고 6보다 작으면 "c" 라벨을 반환합니다.
- mydata 벡터의 값이 6보다 크거나 같고 10보다 작으면 "b" 라벨을 반환합니다.
- mydata 벡터의 값이 10보다 크거나 같으면 "a" 라벨을 반환합니다.
이 코드는 여러 개의 if문을 중첩하는 것보다 ifelse()
함수를 사용하여
마무리
ifelse()
함수는 R 프로그래밍 언어에서 자주 사용되는 함수 중 하나입니다. 이 함수를 사용하면 ifelse()
함수를 배우시면, R 프로그래밍을 보다 쉽고 효율적으로 작성할 수 있게 될 되실거라 생각합니다.
관련 링크
[1] [R] 데이터 프레임 내 모든 숫자를 '홀수'와 '짝수'로 바꾸기
[2] [R] 성적 데이터 합격여부 판단하기 (PASS or FAIL)