Как написать вложенный оператор If Else в R (с примерами)


Функцию ifelse() в базе R можно использовать для написания быстрых операторов if-else. Эта функция использует следующий синтаксис:

ifelse(тест, да, нет)

куда:

  • тест: логический тест
  • yes: возвращаемое значение, если логическая проверка верна
  • no: возвращаемое значение, если логическая проверка неверна.

В этом руководстве объясняется, как использовать эту функцию для написания операторов if else вместе с вложенными операторами if else в R с использованием следующего фрейма данных:

#create data frame
df <- data.frame(team = c('A', 'A', 'B', 'B', 'B', 'C', 'D'),
 points = c(4, 7, 8, 8, 8, 9, 12),
 rebounds = c(3, 3, 4, 4, 6, 7, 7))

#view data frame
df

 team points rebounds
1 A 4 3
2 A 7 3
3 B 8 4
4 B 8 4
5 B 8 6
6 C 9 7
7 D 12 7

Пример 1: Как написать простой оператор If Else

В следующем коде показано, как создать новый столбец во фрейме данных, значение которого основано на значении в столбце «команда»:

#create new column in data frame
df$rating <- ifelse(df$team == 'A', 'great', 'bad')

#view data frame
df

 team points rebounds rating
1 A 4 3 great
2 A 7 3 great
3 B 8 4 bad
4 B 8 4 bad
5 B 8 6 bad
6 C 9 7 bad
7 D 12 7 bad

Этот простой оператор ifelse указывает R сделать следующее:

  • Если значение в столбце команды равно «А», дайте игроку оценку «отлично».
  • В противном случае поставьте игроку оценку «плохо».

Пример 2. Как написать вложенный оператор If Else

В следующем коде показано, как создать новый столбец во фрейме данных, написав вложенный оператор if else:

#create new column in data frame
df$rating <- ifelse(df$team == 'A', 'great',
 ifelse(df$team == 'B', 'OK', 'bad'))

#view data frame
df

 team points rebounds rating
1 A 4 3 great
2 A 7 3 great
3 B 8 4 OK
4 B 8 4 OK
5 B 8 6 OK
6 C 9 7 bad
7 D 12 7 bad

Этот вложенный оператор ifelse указывает R сделать следующее:

  • Если значение в столбце команды равно «А», дайте игроку оценку «отлично».
  • В противном случае, если значение в столбце команды равно «B», дайте игроку оценку «ОК».
  • В противном случае поставьте игроку оценку «плохо».

Пример 3: Как написать более длинные вложенные операторы If Else

В следующем коде показано, как создать новый столбец во фрейме данных, написав еще более длинный вложенный оператор if else:

#create new column in data frame
df$rating <- ifelse(df$team == 'A', 'great',
 ifelse(df$team == 'B', 'OK',
 ifelse(df$team == 'C', 'decent', 'bad')))

#view data frame
df

 team points rebounds rating
1 A 4 3 great
2 A 7 3 great
3 B 8 4 OK
4 B 8 4 OK
5 B 8 6 OK
6 C 9 7 decent
7 D 12 7 bad

Этот вложенный оператор ifelse указывает R сделать следующее:

  • Если значение в столбце команды равно «А», дайте игроку оценку «отлично».
  • В противном случае, если значение в столбце команды равно «B», дайте игроку оценку «ОК».
  • В противном случае, если значение в столбце команды равно «C», дайте игроку оценку «прилично».
  • В противном случае поставьте игроку оценку «плохо».

Обратите внимание, что вы можете использовать этот точный шаблон для написания вложенных операторов ifelse столько, сколько захотите.

Вы можете найти больше руководств по R здесь .