Как написать вложенный оператор 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 здесь .

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.