본문 바로가기
Programming/R

[R 기초] 조건문(IF,dplyr 활용) 개념 및 예제

by Kanii 2025. 2. 1.
반응형

이번 글에서는 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

댓글