Як виправити в r: аргумент «ні» відсутній, без замовчування


Помилка, з якою ви можете зіткнутися в R:

 Error in ifelse(df$team == "B", "Boston"): 
  argument "no" is missing, with no default

Ця помилка виникає, коли ви використовуєте функцію ifelse() у R, але забуваєте включити третій аргумент, щоб указати значення, яке має бути повернуто, якщо логічний тест повертає false.

Цей посібник пояснює, як саме виправити цю помилку.

Як відтворити помилку

Припустимо, що ми маємо наступний кадр даних у R:

 #create data frame
df <- data. frame (team=c('B', 'B', 'B', 'B', 'C', 'C', 'C', 'D'),
                 points=c(12, 22, 35, 34, 20, 28, 30, 18),
                 assists=c(4, 10, 11, 12, 12, 8, 6, 10))

#view data frame
df

  team points assists
1 B 12 4
2 B 22 10
3 B 35 11
4 B 34 12
5 C 20 12
6 C 28 8
7 C 30 6
8 D 18 10

Тепер припустімо, що ми спробуємо використати функцію ifelse() , щоб створити новий стовпець під назвою city , який містить «Boston», якщо значення в стовпці team дорівнює «B»:

 #attempt to create new column with team city
df$city <- ifelse(df$team == ' B ', ' Boston ')

Error in ifelse(df$team == "B", "Boston"): 
  argument "no" is missing, with no default

Ми отримуємо помилку, оскільки нам не вдалося надати третій аргумент функції ifelse() , який визначає значення, яке ми маємо повернути, якщо значення в стовпці team не дорівнює «B».

Як виправити помилку

Щоб виправити цю помилку, просто надайте третій аргумент функції ifelse() , який визначає значення, яке ми маємо повернути, якщо значення в стовпці team не дорівнює «B».

Наступний синтаксис показує, як це зробити:

 #create new column with team city
df$city <- ifelse(df$team == ' B ', ' Boston ', ' Other ')

#view updated data frame
df

  team points assists city
1 B 12 4 Boston
2 B 22 10 Boston
3 B 35 11 Boston
4 B 34 12 Boston
5 C 20 12 Other
6 C 28 8 Other
7 C 30 6 Other
8 D 18 10 Other

Зауважте, що цього разу ми не отримуємо жодних помилок, оскільки ми надали третій аргумент функції ifelse() .

У цьому прикладі функція ifelse() повертає значення «Boston», якщо значення в стовпці team дорівнює «B», або значення «Other», якщо значення в стовпці team є іншим.

Додаткові ресурси

У наступних посібниках пояснюється, як виправити інші типові помилки в R:

Як виправити в R: NAs, введені примусово
Як відремонтувати в R: індекс поза межами
Як виправити в R: довжина довшого об’єкта не є кратною довжині коротшого об’єкта
Як відремонтувати в R: кількість елементів для заміни не кратна довжині заміни

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *