Nasıl düzeltilir? nesne (liste) "double" yazmaya zorlanamaz;
R’de karşılaşabileceğiniz yaygın bir hata:
Error: (list) object cannot be coerced to type 'double'
Bu hata, birden fazla öğeden oluşan bir listeyi, önce unlist() işlevini kullanmadan sayısal öğelere dönüştürmeye çalıştığınızda ortaya çıkar.
Bu eğitimde, bu hatayı çözmek için kullanabileceğiniz adımların tamamı paylaşılmaktadır.
Hata nasıl yeniden oluşturulur?
Aşağıdaki kod, birden çok öğeden oluşan bir listeyi sayısal değerlere dönüştürmeye çalışır:
#create list x <- list(1:5, 6:9, 7) #display list x [[1]] [1] 1 2 3 4 5 [[2]] [1] 6 7 8 9 [[3]] [1] 7 #attempt to convert list to numeric x_num <- as. numeric (x) Error: (list) object cannot be coerced to type 'double'
unlist() fonksiyonunu kullanmadığımız için (liste) “double” yazmaya zorlanamaz hata mesajını aldık.
Hata nasıl düzeltilir?
Listeyi sayısala dönüştürmek için unlist() işlevini kullandığımızdan emin olmamız gerekir:
#create list x <- list(1:5, 6:9, 7) #convert list to numeric x_num <- as. numeric (unlist(x)) #display numeric values x_num [1] 1 2 3 4 5 6 7 8 9 7
X_num’un gerçekten sayısal değerlerin bir vektörü olduğunu doğrulamak için class() işlevini kullanabiliriz:
#verify that x_num is numeric
class(x_num)
[1] "digital"
Orijinal liste ile sayısal listenin aynı sayıda öğeye sahip olup olmadığını da kontrol edebiliriz:
#display total number of elements in original list sum(lengths(x)) [1] 10 #display total number of elements in numeric list length(x_num) [1] 10
İki uzunluğun karşılık geldiğini görüyoruz.
Ek kaynaklar
Aşağıdaki eğitimlerde R’deki diğer yaygın hataların nasıl çözüleceği açıklanmaktadır:
R’de nasıl düzeltilir: Adlar önceki adlarla eşleşmiyor
R’de nasıl düzeltilir: kontrastlar yalnızca 2 veya daha fazla seviyeye sahip faktörlere uygulanabilir
R’de nasıl düzeltilir: daha uzun bir nesnenin uzunluğu, daha kısa bir nesnenin uzunluğunun katı değildir