Как написать оператор 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