Как написать оператор case в r (с примером)


Оператор Case — это тип оператора, который циклически перебирает условия и возвращает значение при выполнении первого условия.

Самый простой способ реализовать оператор case в R — использовать функцию case_when() из пакета dplyr :

 library (dplyr)

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

Эта конкретная функция просматривает значение в столбце с именем col1 и возвращает:

  • « значение1 », если значение в столбце 1 меньше 9
  • « значение2 », если значение в столбце 1 меньше 12.
  • « value3 », если значение в столбце 2 меньше 15.
  • « 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

Мы можем использовать следующий синтаксис для написания оператора case, который создает новый столбец с именем class , значения которого определяются значениями в столбце точек :

 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.
  • « Хорошо », если значение в столбце «баллы» было меньше 15.
  • « Отлично », если ни одно из предыдущих условий не верно.

Новый столбец называется class , поскольку это имя мы указали в функции mutate() .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в R:

Как использовать оператор If с несколькими условиями в R
Как написать вложенный оператор If Else в R
Как написать свою первую функцию tryCatch() в R

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *