Dataframe nesnesi ve data.frame fonksiyonu
Eşit uzunluktaki değişkenleri bir dataframe içerisinde toplayabiliriz. Data frame, as.matrix() veya cbind() fonksiyonlarına benzemekle beraber, data frame nesnesi daha kullanışlı özellikler barındırmaktadır. Boy, kilo ve yas değişkenlerinden data.frame() fonksiyonunu kullanarak bir dataframe nesnesi oluşturabiliriz;
boy <- c(1.80, 1.65, 1.85, 1.90, 1.70, 1.67)
kilo <- c(70, 75, 80, 95, 65, 63)
yas <- c(45, 37, 23, 54, 27, 44)
bkydfrm <- data.frame(BOY=boy, KILO=kilo, YAS=yas)
data.frame() fonksiyonuyla tamamen bağımsız bir veri nesnesi oluşturmaktayız. Sadece numerik değil karakter ve faktör tipinde değişkenleri de dataframe içerisine kaydedebiliriz.
Data frame içerisinde herhangi bir sütuna farklı şekillerde ulaşılabilir;
bkydfrm$BOY
## [1] 1.80 1.65 1.85 1.90 1.70 1.67
bkydfrm[,1]
## [1] 1.80 1.65 1.85 1.90 1.70 1.67
bkydfrm[[1]]
## [1] 1.80 1.65 1.85 1.90 1.70 1.67
Bu yöntemleri kullanarak vektör olarak çıktı almış oluyoruz. Çıktının yine dataframe olması için aşağıdaki yöntemi kullanabiliriz:
bkydfrm[1]
## BOY
## 1 1.80
## 2 1.65
## 3 1.85
## 4 1.90
## 5 1.70
## 6 1.67
Birden fazla sütun seçebiliriz:
bkydfrm[1:2]
## BOY KILO
## 1 1.80 70
## 2 1.65 75
## 3 1.85 80
## 4 1.90 95
## 5 1.70 65
## 6 1.67 63
Vektör vermesi gereken bkydfrm[,1] yönteminde birden fazla sütun belirlersek çıktı dataframe olacaktır:
bkydfrm[,c(1,3)]
## BOY YAS
## 1 1.80 45
## 2 1.65 37
## 3 1.85 23
## 4 1.90 54
## 5 1.70 27
## 6 1.67 44
Satır seçme işlemi de matrikslerdeki gibidir. Mesela ikinci satırı seçelim:
bkydfrm[2,]
## BOY KILO YAS
## 2 1.65 75 37
Çıktı dataframe olarak gelmektedir. Çünkü bir dataframe’de sütunlar farklı veri tipinde olabilir. Bir vektör ise farklı veri tipleri barındıramaz. Bütün sütunlar numerikse ve vektör olarak çıktı almak istiyorsak aşağıdaki ifadeyi kullanabiliriz:
as.numeric(as.vector(bkydfrm[2,]))
## [1] 1.65 75.00 37.00
Veri tipleri farklıysa sonuç arzu ettiğimiz gibi olmayacaktır: