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