R programlama dilinde çalışırken bazen elimizdeki verinin türünden emin olamayız ya da analiz yapmak için verinin türünü değiştirmemiz gerekir. Örneğin, internetten çektiğiniz bir veri setinde sayılar tırnak içinde (metin gibi) gelmiş olabilir. Bu durum matematiksel işlem yapmanızı engeller.
Bu dersimizde, oluşturduğumuz değişkenlerin türünü nasıl soracağımızı (class, typeof) ve bunları nasıl değiştireceğimizi (as.numeric vb.) bir ayakkabı mağazası örneği üzerinden inceleyeceğiz.
Hazırlık: Değişkenlerimizi Oluşturalım
Öncelikle elimizde inceleyeceğimiz bazı veriler olsun. Bir ayakkabının özelliklerini değişkenlere atadığımızı düşünelim:
- Renk:
ayakkabi_rengi <- "red"(Kırmızı, tırnak içinde olduğu için metin) - Fiyat (Tam sayı):
ayakkabi_fiyat <- 2535 - Stok Durumu (Var/Yok):
ayakkabi_numara <- T(True, yani Doğru/Var) - Küsüratlı Fiyat:
ayakkabi_fiyat2 <- 2535.45
1. Veri Tipini Sorgulama: “Sen Kimsin?”
R’da bir değişkenin ne olduğunu öğrenmek için temelde iki fonksiyon kullanırız: class() ve typeof().
class() Fonksiyonu
Bu fonksiyon bize verinin genel sınıfını söyler. Nesne tabanlı bir bakış açısı sunar.
class(ayakkabi_rengi)yazdığımızda R bize “character” cevabını verir.class(ayakkabi_fiyat)yazdığımızda ise “numeric” cevabını alırız.
typeof() Fonksiyonu
Bu fonksiyon biraz daha derinlemesine bakar ve verinin bilgisayar hafızasında hangi “tipte” tutulduğunu söyler.
Aklınızda Kalsın: Fonksiyonun ismindeki mantığı şöyle kurabilirsiniz; İngilizcede “Type” kelimesi “Tip” demektir. “Of” ise aitlik belirtir. Yani typeof aslında “Bunun tipi ne?” diye sormaktır.
typeof(ayakkabi_fiyat2)dediğimizde, ondalıklı bir sayı olduğu için R bize “double” der.typeof(ayakkabi_numara)dediğimizde, TRUE/FALSE değeri olduğu için “logical” cevabını alırız.
2. Veri Türü Dönüştürme (Type Conversion)
Geldik en kritik kısma. Bazen veriler istediğimiz formatta gelmez. Örneğin bir sınav notu sisteme yanlışlıkla metin olarak girilmiş olabilir.
Diyelim ki harfNotu <- "53" şeklinde bir değişkenimiz var. Eğer class(harfNotu) ile bakarsak, tırnak işaretinden dolayı bunun “character” olduğunu görürüz. Biz bu “53” sayısı ile ortalama hesaplayamayız çünkü R onu bir kelime zanneder.
Dönüştürme Fonksiyonları: as...
Veriyi başka bir türe zorlamak (convert) için as ile başlayan fonksiyonlar kullanırız. Buradaki “as”, İngilizcede “gibi” anlamına gelir. Yani koda “Bunu sayı gibi yap” demiş oluruz.
Metin olan notu sayıya çevirmek için: harfNotu <- as.numeric(harfNotu)
Bu kodu çalıştırdıktan sonra artık harfNotu değişkeni matematiksel işleme uygun gerçek bir sayı olur.
Önemli Bir Uyarı!
Veri tipi değişikliği, sadece dönüştürülme olanağı olan verilerde yapılır. Mantıken sayıya dönüşemeyecek bir şeyi zorlayamazsınız. Örneğin “Elma” yazan bir metni as.numeric("Elma") diyerek sayıya çeviremezsiniz; R size hata verir veya NA (Değer Yok) sonucunu döndürür. Dönüşüm yaparken verinin içeriğinin hedef türe uygun olduğundan emin olun.
