Функцию 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 здесь .