Як відновити в r: нечисловий аргумент бінарного оператора


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

 Error in df$var1- df$var2: non-numeric argument to binary operator 

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

Ось приклади бінарних операцій:

  • Віднімання ( )
  • Додавання ( + )
  • Множення ( * )
  • Ділення ( / )

Ця помилка найчастіше виникає, коли один із наданих вами векторів є вектором символів.

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

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

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

 #create data frame
df <- data. frame (period = c(1, 2, 3, 4, 5, 6, 7, 8),
                 sales = c(14, 13, 10, 11, 19, 9, 8, 7),
                 returns = c('1', '0', '2', '1', '1', '2', '2', '3'))

#view data frame
df

  period sales returns
1 1 14 1
2 2 13 0
3 3 10 2
4 4 11 1
5 5 19 1
6 6 9 2
7 7 8 2
8 8 7 3

Тепер припустімо, що ми спробуємо створити новий стовпець під назвою «net», віднявши стовпець «returns» із стовпця «sales»:

 #attempt to create new column called 'net'
df$net <- df$sales - df$returns

Error in df$sales * df$returns: non-numeric argument to binary operator

Помилка виникає через те, що стовпець «повертає» відноситься до класу «символ», і неможливо відняти стовпець символів із числового стовпця.

 #display class of 'sales' column
class(df$sales)

[1] "digital"

#display class of 'returns' column
class(df$returns)

[1] “character”

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

Щоб виправити цю помилку, скористайтеся as.numeric() для перетворення стовпця «повернення» на числове перед виконанням віднімання:

 #create new column called 'net'
df$net <- df$sales - as. numeric (df$returns)

#view updated data frame
df

  period sales returns net
1 1 14 1 13
2 2 13 0 13
3 3 10 2 8
4 4 11 1 10
5 5 19 1 18
6 6 9 2 7
7 7 8 2 6
8 8 7 3 4

Ми можемо виконати віднімання без будь-яких помилок, оскільки стовпці «продажі» та «повернення» були числовими.

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

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

Як виправити в R: dim(X) має мати позитивну довжину
Як виправити в R: імена не збігаються з попередніми іменами
Як виправити в R: довжина довшого об’єкта не є кратною довжині коротшого об’єкта
Як виправити в R: контрасти можна застосовувати лише до факторів із 2 або більше рівнями

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

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