R'de nasıl düzeltilir: zorlamayla ortaya çıkan na'lar


R’de karşılaşabileceğiniz yaygın bir uyarı mesajı şudur:

 Warning message:
NAs introduced by coercion 

Bu uyarı mesajı, R’deki bir vektörü sayısal bir vektöre dönüştürmek için as.numeric() işlevini kullandığınızda ve orijinal vektörde sayısal olmayan değerler bulunduğunda ortaya çıkar.

Açıkça söylemek gerekirse, bu uyarı mesajını “düzeltmek” için hiçbir şey yapmanıza gerek yoktur. R, orijinal vektördeki bazı değerlerin sayısal değerlere dönüştürülemediği için NA’ya dönüştürüldüğü konusunda sizi basitçe uyarır.

Ancak bu eğitimde, bu uyarı mesajının görüntülenmesini hiç istemiyorsanız izleyebileceğiniz adımların tamamı paylaşılmaktadır.

Uyarı mesajı nasıl yeniden oluşturulur?

Aşağıdaki kod bir karakter vektörünü sayısal bir vektöre dönüştürür:

 #define character vector
x <- c('1', '2', '3', NA, '4', 'Hey')

#convert to numeric vector
x_num <- as. numeric (x)

#display digital vector
x_num

Warning message:
NAs introduced by coercion 
[1] 1 2 3 NA 4 NA

R, karakter vektörünü sayısal bir vektöre dönüştürür, ancak orijinal vektörün iki değeri sayısal değerlere dönüştürülemediği için zorlama ile ortaya çıkan NA’lar uyarı mesajını görüntüler.

Yöntem #1: Uyarıları Kaldır

Bu uyarı mesajını ele almanın bir yolu, karakter vektörünü sayısal bir vektöre dönüştürürken, onu pushWarnings() işlevini kullanarak basitçe bastırmaktır:

 #define character vector
x <- c('1', '2', '3', NA, '4', 'Hey')

#convert to numeric vector, suppressing warnings
suppressWarnings(x_num <- as.numeric (x))

#display digital vector
x_num

[1] 1 2 3 NA 4 NA

R, herhangi bir uyarı mesajı görüntülemeden karakter vektörünü başarıyla sayısal vektöre dönüştürür.

Yöntem #2: Sayısal olmayan değerleri değiştirin

Uyarı mesajından kaçınmanın ilk yolu, orijinal vektörün sayısal olmayan değerlerini gsub() işlevini kullanarak boşluklarla değiştirmektir:

 #define character vector
x <- c('1', '2', '3', '4', 'Hey')

#replace non-numeric values with 0
x <- gsub(" Hey ", " 0 ", x)

#convert to numeric vector
x_num <- as. numeric (x)

#display digital vector
x_num

[1] 1 2 3 4 0

R, herhangi bir uyarı mesajı görüntülemeden karakter vektörünü başarıyla sayısal vektöre dönüştürür.

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: daha uzun bir nesnenin uzunluğu, daha kısa bir nesnenin uzunluğunun katı değildir
R’de nasıl düzeltilir: kontrastlar yalnızca 2 veya daha fazla seviyeye sahip faktörlere uygulanabilir

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir