Nasıl düzeltilir? değiştirilecek parça sayısı, değiştirme uzunluğunun katı değil
R’de karşılaşabileceğiniz bir hata:
Warning message: number of items to replace is not a multiple of replacement length
Bu hata, bir vektör veya veri çerçevesi sütunundaki belirli sayıda öğeyi (3 öğe varsayalım) farklı sayıda öğeyle (6 öğe varsayalım) değiştirmeye çalıştığınızda ortaya çıkar.
Bu eğitimde bu hatanın nasıl düzeltileceği tam olarak açıklanmaktadır.
Hata nasıl yeniden oluşturulur?
R’de, ilk sütununda birkaç eksik değer bulunan aşağıdaki veri çerçevesine sahip olduğumuzu varsayalım:
#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
Şimdi birinci sütundaki eksik değerleri ikinci sütundaki değerlerle değiştirmeye çalıştığımızı varsayalım:
#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
Birinci sütundaki eksik 3 değeri ikinci sütundaki 6 değerle değiştirmeye çalıştığımız için hata alıyoruz.
Hata nasıl düzeltilir?
Bu hatayı düzeltmenin en kolay yolu ifelse() ifadesini kullanmaktır:
#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
Bu ifelse() ifadesi, “a” sütununun değerinin boş olup olmadığını kontrol eder. Eğer öyleyse, “b” sütunundaki karşılık gelen değerle değiştirilir, aksi takdirde tek başına bırakılır.
Bu hatayı düzeltmenin başka bir yolu da tüm eksik değerleri belirli bir sayıyla değiştirmektir:
#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
Bu yöntemi kullanarak “a” sütunundaki eksik değerlerin her biri sıfırla değiştirilir.
Ek kaynaklar
R’de nasıl düzeltilir: Zorlamayla ortaya çıkan NA’lar
R’de nasıl onarılır: sınırların dışında dizin
R’de nasıl düzeltilir: daha uzun bir nesnenin uzunluğu, daha kısa bir nesnenin uzunluğunun katı değildir