R Notları: Veri Setinde 0 ve NA Dönüştürme

R Programlama Dili ile yaptığım çalışmalardan ufak anekdotları başlangıç seviyeleri için derlemeye devam ediyorum. Bu bölümde veri setlerinde sık sık karşılaştığımız “0 ve NA’ları nasıl dönüştürebiliriz?” sorununu ele alıyorum.

Öncelikle “0” ve “NA” ikilisinin arasındaki farkı kısaca açalım. Veri setinde yer alan “0” değeri anlamsız olarak gözükse de, gözlemin kayda değer bir verisi olmadığını ifade eden anlam taşır. “NA” ise kayıp veriyi ifade eder yani boşluktur. Özellikle “ggplot” ile görselleştirme çalışmalarında, görselden istenen verimin alınabilmesi için 0 ile NA’lere dikkat etmek önemlidir. Çalışmanızı içeri aktarma sırasında “0” ve “NA” değerlerini dönüştürmek mümkün iken basit kodlarla da bu işi çözebiliriz. Öncelikle basit bir veri seti oluşturalım.

datanotlar2 = c(NA, 1, 2, 3, 4, NA, 6)

Oluşturduğumuz “datanotlar2” veri setine “NA” olarak yer alan iki adet kayıp veri ekledim. Aşağıda kullandığımız “is.na” komutu veri setinde kayıp veri olup olmadığını tespit ediyor. Büyük hacimli veri setlerinde kullanılabilir.

datanotlar2 = c(NA, 1, 2, 3, 4, NA, 6)
is.na(datanotlar2)
[1] TRUE FALSE FALSE FALSE FALSE TRUE FALSE

Komutu çalıştırdıktan sonra veri setinde kayıp veriler olduğunu “TRUE” ifadeleri ile görüyorum. Bu ifadelerin tümünü 0’a ya da herhangi farklı değere dönüştürmek için aşağıdaki komutu kullanmam gerekiyor.

datanotlar2[is.na(datanotlar2)] <- 0

## [1] 0 1 2 3 4 0 6

Bu komutla ile birlikte tüm kayıp verilerimin 0 değerine dönüştüğünü görüyorum. Tümden değiştirmek yerine spesifik bir hücrede değişiklik yapmak isteseydim eğer, kullanmam gereken komut şöyle olacaktı:

datanotlar2[6] = 5

## [1] 0 1 2 3 4 5 6

Köşeli parantez içerisinde yer alan “6” değeri veri setindeki 6. hücreyi işaret ediyor. Son olarak veri setinde yer alan NA’yı dönüştürmeden tamamen gözlemden çıkarmak için ise aşağıdaki komutu kullanmanız gerekiyor:

datanotlar2 = c(NA, 1, 2, 3, 4, NA, 6)
na.omit(datanotlar2)

## [1] 1 2 3 4 6
Share

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir