Cara memperbaiki di r: argumen non-numerik dari operator biner


Kesalahan yang mungkin Anda temui di R adalah:

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

Kesalahan ini terjadi ketika Anda mencoba melakukan operasi biner pada dua vektor dan salah satu vektornya bukan numerik.

Berikut adalah contoh operasi biner:

  • Pengurangan ( )
  • Penambahan ( + )
  • Perkalian ( * )
  • Divisi ( / )

Kesalahan ini paling sering terjadi jika salah satu vektor yang Anda berikan adalah vektor karakter.

Tutorial ini menjelaskan dengan tepat cara memperbaiki kesalahan ini.

Bagaimana cara mereproduksi kesalahan tersebut

Misalkan kita memiliki bingkai data berikut di 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

Sekarang katakanlah kita mencoba membuat kolom baru bernama “bersih” dengan mengurangi kolom “pengembalian” dari kolom “penjualan”:

 #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

Kesalahan terjadi karena kolom “pengembalian” adalah kelas “karakter” dan tidak mungkin untuk mengurangi kolom karakter dari kolom numerik.

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

[1] "digital"

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

[1] “character”

Bagaimana cara memperbaiki kesalahan tersebut

Cara untuk memperbaiki kesalahan ini adalah dengan menggunakan as.numeric() untuk mengubah kolom “pengembalian” menjadi numerik sebelum melakukan pengurangan:

 #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

Kami dapat melakukan pengurangan tanpa kesalahan apa pun karena kolom “penjualan” dan “pengembalian” berupa angka.

Sumber daya tambahan

Tutorial berikut menjelaskan cara mengatasi kesalahan umum lainnya di R:

Cara memperbaikinya di R: dim(X) harus panjangnya positif
Cara memperbaiki di R: Nama tidak sesuai dengan nama sebelumnya
Cara memperbaikinya di R: panjang benda yang lebih panjang bukan kelipatan panjang benda yang lebih pendek
Cara memperbaikinya di R: kontras hanya dapat diterapkan pada faktor dengan 2 level atau lebih

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *