Как написать вложенный оператор if else в r (с примерами)


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

ifelse(проверка, да, нет)

Золото:

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

В этом руководстве объясняется, как использовать эту функцию для записи операторов 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 to 4 3
2 to 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 можно найти здесь .

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

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