Cara memperbaikinya: jumlah barang yang akan diganti bukan kelipatan dari panjang penggantian


Kesalahan yang mungkin Anda temui di R adalah:

 Warning message:
  number of items to replace is not a multiple of replacement length

Kesalahan ini terjadi ketika Anda mencoba mengganti sejumlah elemen dalam kolom vektor atau bingkai data (asumsikan 3 elemen) dengan jumlah elemen yang berbeda (asumsikan 6 elemen).

Tutorial ini menjelaskan dengan tepat cara memperbaiki kesalahan ini.

Bagaimana cara mereproduksi kesalahan tersebut

Misalkan kita memiliki bingkai data berikut di R dengan beberapa nilai yang hilang di kolom pertama:

 #create data frame
df <- data. frame (a=c(3, NA, 7, NA, NA, 14),
                 b=c(4, 4, 5, 12, 13, 18))

#view data frame
df

   ab
1 3 4
2 NA 4
3 7 5
4 NA 12
5 NA 13
6 14 18

Sekarang misalkan kita mencoba mengganti nilai yang hilang pada kolom pertama dengan nilai pada kolom kedua:

 #attempt to replace missing values in first column with values in second column
df$a[is. na (df$a)] <- df$b

Warning message:
In df$a[is.na(df$a)] <- df$b:
  number of items to replace is not a multiple of replacement length

Kami menerima kesalahan karena kami mencoba mengganti 3 nilai yang hilang di kolom pertama dengan 6 nilai di kolom kedua.

Bagaimana cara memperbaiki kesalahan tersebut

Cara termudah untuk memperbaiki kesalahan ini adalah dengan menggunakan pernyataan ifelse() :

 #replace missing values in column 'a' with corresponding values in column 'b'
df$a <- ifelse(is. na (df$a), df$b, df$a)

#view updated data frame
df

   ab
1 3 4
2 4 4
3 7 5
4 12 12
5 13 13
6 14 18

Pernyataan ifelse() ini memeriksa apakah nilai kolom “a” kosong. Jika demikian, maka diganti dengan nilai yang sesuai di kolom “b”, jika tidak maka dibiarkan saja.

Cara lain untuk memperbaiki kesalahan ini adalah dengan mengganti semua nilai yang hilang dengan nomor tertentu:

 #replace all missing values in column 'a' with zero
df$a[is. na (df$a)] <- 0

#view updated data frame
df

   ab
1 3 4
2 0 4
3 7 5
4 0 12
5 0 13
6 14 18

Dengan menggunakan metode ini, setiap nilai yang hilang di kolom “a” diganti dengan nol.

Sumber daya tambahan

Cara memperbaikinya di R: NA yang diperkenalkan dengan paksaan
Cara memperbaiki di R: indeks di luar batas
Cara memperbaikinya di R: panjang benda yang lebih panjang bukan kelipatan panjang benda yang lebih pendek

Tambahkan komentar

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