Çeşitli gönderilerde farklı R veri türlerini veya sınıflarından bahsediyorum, bu yüzden bunları daha ayrıntılı olarak ele almak istiyorum. Bu, veri türleri ile ilgili 3 bölümlük bir dizinin 1. bölümüdür. Bu yazıda, faydalı veri türlerini açıklayacağım ve genel bir bakış sunacağım. Bölüm 2 ve 3’te, bu veri türlerini programlama yaparken avantajınıza göre nasıl kullanabileceğinizi daha ayrıntılı örneklerde göstereceğim.
R programlama dilinde, daima oluşturduğunuz çeşitli R-nesnelerine atıfta bulunmalısınız. Stata’da söylenenin aksine, burada, bir veri kümesini açtığınız zaman atıfta bulunduğunuz değişkenlerin söz konusu veri kümesinin sütunları olduğunu belirtemeyiz. Örneğin, aşağıdaki gibi bir veri kümemiz varsa:
Stata’da şunu söyleyebiliriz:
keep if Age>25
Stata, bu veri kümesinin ‘Age’ sütunundan bahsettiğimizi bilir. Fakat R’da bunu yapamayız çünkü aşağıdaki hatayı alırız:
Alınan hatada da görüldüğü gibi, “Age” oluşturduğumuz bir nesne değildir. Çünkü ‘Age’ veri çerçevesinin “mydata” olarak adlandırılan bir parçasıdır. Aşağıdaki gibi bir veri çerçevesi, belirli özelliklere sahip bir nesnedir (bu durumda da ayrıca bir sınıftır). Bunun veri çerçevesi olduğunu nasıl bilebiliriz? Class () ifadesiyle kontrol edebiliriz:
“mydata” nın veri çerçevesi olması ne anlama gelir? Değişkenleri (yani nesneleri) R’da depolamak için karşılık gelen sınıflara sahip birçok farklı yol vardır. Aşağıda bu nesnelerin en yaygın ve kullanışlı alt kümesini, tanımları ve sınıflarıyla birlikte sunuyorum:
Bu blogda, faktörler de dahil olmak üzere ayrı bir yazı olacak kadar faydalı başka sınıflar da yer almaktadır. Bu yüzden şimdilik bunları bir kenara bırakıyorum. Ayrıca, kendi sınıflarınızı da oluşturabilirsiniz. Ancak bu kesinlikle nesnelere ve sınıflara girişin kapsamı dışındadır.
Değişkenlerime ne olduklarını açıklayan bir isim vermeyi seçtim (örneğin, matris ya da sayısal olmasına göre numeric.var, matrix,var vb gibi). Ancak, elbette değişkenlerinizi kimlik_numarası, Yükseklik.cm, YIL.AY.GUN, ad_soyad_ikinciad örneklerinde olduğu gibi alt çizgi, küçük harf, büyük harf kullanımı ile de adlandırabilirsiniz. Sadece, bu isimlendirmeyi ortalama (mean), medyan (median) gibi kelimeler ile yapmak doğru olmayabilir. Çünkü bu kelimeler R’da fonksiyon olarak tanımlı olduğu için bazı hatalar oluşabilir.
Aşağıda, bu nesnelere isim atamanın ve içerikleri ekranda yazdırmanın farklı yollarına ait bazı örnekler yer alıyor.
1) Sadece tek bir sayı veya tırnak içinde karakter / kelime / sözcük grubu: Değişken ismine tırnak işaretleri arasında bir sayı veya bir şey atamanız yeterlidir.
numeric.var<-10
character.var<-"Hello!"
2) Vektör: Birkaç sayıyı tek bir vektörde birleştirmek için c() operatörünü veya seq() veya rep() gibi bir fonksiyonu kullanın.
vector.numeric<-c(1,2,3,10)
vector.char<-rep("abc",3)
3) Matris: Girdileri, ardından matristeki satır sayısını ve sütun sayısını belirtmek için matrix() fonksiyonunu kullanın. Matrisler yalnızca satır 1, sütun 2 için [1,2] gibi matris gösterimi kullanılarak indekslenebilir. İndeksleme hakkında daha fazla bilgi için önceki yazımı inceleyebilirsiniz.
matrix.numeric<-matrix(data=c(1:6),nrow=3,ncol=2)
matrix.character<-matrix(data=c("a","b","c","d"), nrow=2, ncol=2)
4) Veri çerçevesi: Değişkenleri bir araya getirmek için data.frame()
fonksiyonunu kullanın. Burada değişkenler için “sütun birleştirmek” amacıyla cbind()
fonksiyonunu kullanmalısınız. Matrislerde mümkün olmayan, sayısal sütunları karakter sütunlarıyla veri çerçevesinde nasıl birleştirdiğimize dikkat edin. Eğer belirli bir sütuna atıfta bulunmak istersek, ikinci sütun için dataframe.var$ID
gibi $
operatörünü kullanırız.
dataframe.var<-data.frame(cbind(School=1, ID=1:5, Test=c("math","read","math","geo","hist")))
Alternatif olarak, read.csv()
, read.dta()
veya read.xport()
fonksiyonlarını (daha fazla bilgi için bakınız) kullanarak R’a çektiğiniz tüm veri kümeleri otomatik olarak bir veri çerçevesi olacaktır.
Veri çerçeveleri hakkında dikkat edilmesi gereken nokta, veri çerçevenizdeki değişkenlerin de sınıflara sahip olmasıdır. Örneğin, tüm veri çerçevesinin sınıfı “data.frame” dir, ancak ID sütununun sınıfı bir “faktör” dür.
Yine, başka bir gönderide faktörler ile sayısal sınıflar veya karakter sınıfları arasında nasıl ileri veya geri değişim olduğunu inceleyeceğim.
5) Liste: list()
fonksiyonunu kullanın ve dahil etmek istediğiniz tüm nesneleri listeleyin. Liste tüm nesneleri bir araya getirir ve özel bir indeksleme kuralına sahiptir: çift köşeli parantez [[1]]. Başka bir gönderide listeleri inceleyeceğim.
list.var<-list(numeric.var, vector.char, matrix.numeric, dataframe.var)
Ne tür nesneler yarattığınızı ve dolayısıyla yerel belleğinizde ne olduğunu bilmek için, ls()
fonksiyonunu şu şekilde kullanın:
Bir nesneyi silmek (kaldırmak) için şunu yapın:
rm(character.var)
Ve tüm nesneleri kaldırmak için şunu yapabilirsiniz:
rm(list=ls())
Bu, nesneler ve sınıflara kısa bir girişti. Gelecek hafta, bunların daha kolay ve daha verimli programlama için ne kadar yararlı olduğunu ele alacağım.
Kaynak: https://www.r-bloggers.com/data-types-part-1-ways-to-store-variables/