R에서 case 문을 작성하는 방법(예제 포함)


Case 문은 조건을 순환하고 첫 번째 조건이 충족되면 값을 반환하는 문 유형입니다.

R에서 Case 문을 구현하는 가장 쉬운 방법은 dplyr 패키지의 case_when() 함수를 사용하는 것입니다.

 library (dplyr)

df %>% 
  mutate(new_column = case_when(
    col1 < 9 ~ ' value1 ',
    col1 < 12 ~ ' value2 ',
    col1 < 15 ~ ' value3 ',
    TRUE ~ ' Great '))

이 특정 함수는 col1 이라는 열의 값을 보고 다음을 반환합니다.

  • col1의 값이 9보다 작은 경우 “ value1
  • col1의 값이 12보다 작은 경우 “ value2
  • col2의 값이 15보다 작은 경우 ” value3
  • 이전 조건 중 어느 것도 true가 아닌 경우 ” value4

TRUE 는 “else” 문과 동일합니다.

다음 예에서는 이 기능을 실제로 사용하는 방법을 보여줍니다.

예: R의 사례 문

R에 다음과 같은 데이터 프레임이 있다고 가정합니다.

 #create data frame
df <- data. frame (player=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
                 points=c(6, 8, 9, 9, 12, 14, 15, 17, 19, 22))

#view data frame
df

   player points
1 1 6
2 2 8
3 3 9
4 4 9
5 5 12
6 6 14
7 7 15
8 8 17
9 9 19
10 10 22

다음 구문을 사용하여 포인트 열의 값에 따라 값이 결정되는 class 라는 새 열을 생성하는 Case 문을 작성할 수 있습니다.

 library (dplyr)

#create new column using case statement
df %>% 
  mutate(class = case_when(
    points < 9 ~ ' Bad ',
    points < 12 ~ ' OK ',
    points < 15 ~ ' Good ',
    TRUE ~ ' Great '))

   player points class
1 1 6 Bad
2 2 8 Bad
3 3 9 OK
4 4 9 OK
5 5 12 Good
6 6 14 Good
7 7 15 Great
8 8 17 Great
9 9 19 Great
10 10 22 Great

Case 문은 포인트 열의 값을 보고 다음을 반환했습니다.

  • 포인트 열의 값이 9 미만인 경우 ” 나쁨
  • 포인트 열의 값이 12 미만인 경우 ” OK
  • 포인트 열의 값이 15 미만인 경우 ” 좋음
  • 이전 조건 중 어느 것도 참이 아닌 경우 “ 좋음

새로운 열의 이름은 class 입니다. 이는 우리가 mutate() 함수에서 지정한 이름이기 때문입니다.

추가 리소스

다음 튜토리얼에서는 R에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

R에서 여러 조건이 있는 If 문을 사용하는 방법
R에서 중첩된 If Else 문을 작성하는 방법
R에서 첫 번째 tryCatch() 함수를 작성하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다