Jak naprawić w r: nienumeryczny argument operatora binarnego


Błąd, który możesz napotkać w R to:

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

Ten błąd występuje, gdy próbujesz wykonać operację binarną na dwóch wektorach, a jeden z wektorów nie jest numeryczny.

Oto przykłady operacji binarnych:

  • Odejmowanie ( )
  • Dodatek ( + )
  • Mnożenia ( * )
  • Podział ( / )

Ten błąd występuje najczęściej, gdy jeden z podanych wektorów jest wektorem znakowym.

W tym samouczku dokładnie wyjaśniono, jak naprawić ten błąd.

Jak odtworzyć błąd

Załóżmy, że mamy następującą ramkę danych w 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

Załóżmy teraz, że próbujemy utworzyć nową kolumnę o nazwie „netto”, odejmując kolumnę „zwroty” od kolumny „sprzedaż”:

 #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

Występuje błąd, ponieważ kolumna „zwraca” jest klasy „znakowej” i nie można odjąć kolumny znakowej od kolumny liczbowej.

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

[1] "digital"

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

[1] “character”

Jak naprawić błąd

Sposobem na naprawienie tego błędu jest użycie funkcji as.numeric() w celu przekonwertowania kolumny „zwroty” na wartość liczbową przed wykonaniem odejmowania:

 #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

Odejmowanie jesteśmy w stanie wykonać bez błędów, gdyż kolumny „sprzedaż” i „zwroty” były numeryczne.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak rozwiązać inne typowe błędy w języku R:

Jak naprawić w R: dim(X) musi mieć długość dodatnią
Jak naprawić w R: Nazwy nie pasują do poprzednich nazw
Jak naprawić w R: długość dłuższego obiektu nie jest wielokrotnością długości krótszego obiektu
Jak naprawić w R: kontrasty można zastosować tylko do czynników o 2 lub więcej poziomach

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *