반응형
이번 글에서는 R에서 조건문을 활용하는 방법과 실전 예제를 살펴보고자 한다.
1. 기본 조건문 - if와 if else
R에서 가장 기본적인 조건문은 if 문과 ifelse 함수이다.
- if 문: 특정 조건을 만족할 때 실행할 코드를 정의한다.
- ifelse 문: 벡터 단위로 조건을 평가하여 두 가지 값 중 하나를 반환한다.
x <- 10
if (x > 5) {
print("x는 5보다 크다.")
} else {
print("x는 5 이하이다.")
}
scores <- c(85, 40, 75, 90, 55)
grades <- ifelse(scores >= 60, "합격", "불합격")
grades
[1] "합격" "불합격" "합격" "합격" "불합격"
2. 다중 조건 처리 - if 문과 else if 문
여러 개의 조건을 평가할 때는 else if를 활용할 수 있다.
score <- 85
if (score >= 90) {
grade <- "A"
} else if (score >= 80) {
grade <- "B"
} else if (score >= 70) {
grade <- "C"
} else {
grade <- "F"
}
print(grade)
[1] "B"
3. 데이터프레임에서 조건 필터링 - subset과 filter
R에서 데이터프레임에서 조건을 만족하는 행을 선택할 때는 subset() 함수나 dplyr 패키지의 filter() 함수를 사용할 수 있다.
- subset() 함수 활용
data <- data.frame(ID = 1:5, Score = c(85, 40, 75, 90, 55))
high_scores <- subset(data, Score >= 60)
print(high_scores)
ID Score
1 1 85
3 3 75
4 4 90
- filter() 함수 활용 (dplyr 패키지)
library(dplyr)
data <- data.frame(ID = 1:5, Score = c(85, 40, 75, 90, 55))
high_scores <- data %>% filter(Score >= 60)
print(high_scores)
4. 여러 조건을 처리하는 case_when()
case_when() 함수는 ifelse()보다 가독성이 좋은 다중 조건 처리를 가능하게한다.
library(dplyr)
data <- data.frame(ID = 1:5, Score = c(85, 40, 75, 90, 55))
data <- data %>%
mutate(Grade = case_when(
Score >= 90 ~ "A",
Score >= 80 ~ "B",
Score >= 70 ~ "C",
TRUE ~ "F"
))
print(data)
ID Score Grade
1 1 85 B
2 2 40 F
3 3 75 C
4 4 90 A
5 5 55 F
R은 아주 효율적인 벡터 연산을 제공하므로, 조건문을 잘 작성 할 수 있다면 데이터 전처리를 진행하는 것에 굉장히 효과적일 수 있다.
이 글이 누군가에게 도움이 되었길 바라며!
> SAS 버전
2022.04.26 - [Programming/SAS] - [SAS 기초] 조건문(WHERE ~ IF ELSE)
728x90
'Programming > R' 카테고리의 다른 글
[R - 시계열] 단절 시계열 분석 (0) | 2023.03.20 |
---|---|
[Preprocessing] Quantile Normalization (0) | 2022.05.16 |
[R 기초] 데이터 객체 생성 및 처리 관련 구문 (0) | 2022.03.25 |
댓글