Bu dersi, Epodder Kitaplıktan indirdiğimiz Veri Düzenleme ve Görşelleştirme / Kübra Atalay Kabasakal & Sebahat Gören kitabından işlemeye devam ettik. Geçen haftaki derste 2.4. across() fonksiyonunda kalmıştık.
Bir veri setinde aynı anda birden fazla sütuna aynı işlem uygulanmak istendiğinde dplyr paketi içindeki across() fonksiyonu sıklıkla kullanılmaktadır. Genellikle summarise() ve mutate() içinde kullanılarak işlemleri topluca yapmayı kolaylaştırır.
# Birden fazla sütun için ortalama ve standart sapma hesaplama
midiPISA %>%
summarise(across(starts_with("OD"), list(mean = mean, sd = sd)))Kullanımdan kaldırılmış olan summarise_at(), summarise_if(), summarise_all() gibi fonksiyonların yerine artık summarise() ve across() fonksiyonşarının birlikte kullanılarak bu işlevlerin yerini getirildiğini öğrendik.
# Sayısal değişkenlerin ortalama ve standart sapmalarını hesaplama
midiPISA %>%
summarise(across(where(is.numeric), list(mean = mean, sd = sd), na.rm = TRUE))top_n() fonksiyonu, belirli bir değişkenin en yüksek veya en düşük değerlerine göre veri setinde seçim yapmamıza olanak tanır.
# Her iki cinsiyet için en yüksek okuma puanına sahip ilk 5 öğrencinin bulunması
midiPISA %>%
group_by(CINSIYET) %>%
top_n(5, ODOKUMA1)top_n() fonksiyonu, “-” ile birlikte kullanıldığında, veri setindeki en düşük ilgili özelliğe sahip öğrencilerin bilgilerini verir.
# Her iki cinsiyet için en düşük okuma puanına sahip ilk 5 öğrencinin bulunması
midiPISA %>%
group_by(CINSIYET) %>%
top_n(-5, ODOKUMA1)join() fonksiyonları iki veri setini istenilen şekilde birleştirme amacıyla kullanılır. Her iki veri setini birleştirmek istediğimizde bu veri setlerinden hangi satır veya sütunları seçeceğimizi, satırların eşleşip eşleşmeyeceğini hangi değişkenlerle belirleneceğinin bilinmesi gerekmektedir. Bu nedenle de her bir amaca yönelik join fonksiyon türleri belirlenmiştir. Bunlar; left_join(), right_join(), full_join(), inner_join(), semi_join(), anti_join() fonksiyonlarıdır.
midiPISA1, midiPISA verisinden OGRENCIID, CINSIYET ve ST097Q01TA, ST097Q02TA değişkenlerinin ve bu veri setinin ilk altı satırının seçilmesi ile oluşturulur.
midiPISA1 <- midiPISA %>% select(OGRENCIID,CINSIYET,ST097Q01TA,ST097Q02TA) #değişkenlerin seçimi
midiPISA1<-midiPISA1[1:6,] #veri setinin ilk 6 satırının seçilmesi
midiPISA1midiPISA1 verisinin oluşturulmasından sonra midiPISA2 verisi oluşturulur. Öncelikle midiPISA verisinden öğrenci id, okumaktan zevk alma ve okuma olası değer1 puanları değişkenleri seçilir. Ardından bu veri setinin ilk yedi satırı seçilir ve üçüncü satır silinir. Sonuç olarak altı satırlık bir midiPISA2 veri seti elde edilmiş olur.
#değişkenlerin seçimi
midiPISA2<- midiPISA %>% select(OGRENCIID,OKUMA_ZEVK,ODOKUMA1)
midiPISA2<-midiPISA2[1:7,] #veri setinin ilk 7 satırının seçilmesi
midiPISA2<-midiPISA2[-3,] #veri setinin 3. satırının çıkarılması
midiPISA2A %>% inner_join(B) ile sadece A ve B nin eşleşen satırları birleştirilir. Yani hem A hem de B den gelen sütunları alır.
A %>% full_join(B) ile A ve B veri setinde yer alan tüm satırları birleştirir. Hem A hem de B den gelen sütunları alır.
full_join() fonksiyonu ile veri setleri doğrudan birleştirilmektedir. (kümelerdeki birleşim işlemi gibi).
gather() fonksiyonu geniş veriyi, uzun veri haline getirir. spread() fonksiyonu uzun veriden tekrar geniş veri olusturmaya yarar. gather() fonksiyonunun tersi olan işlevi yapar.
(gather() fonksiyonu yeni tidy paketinde kalldırılmış, o nedenle burda hata verdi dosya)
{r}# genisveri<- midiPISA %>% select(OGRENCIID,ODOKUMA1:ODOKUMA5) #belli değişkenlerin seçilmesi genisveri %>% head(6) # verinin ilk 6 satırının görüntülenmesi
{r}# uzun <- genisveri %>% gather(O_OD,okumapuan,ODOKUMA1:ODOKUMA5) uzun %>% arrange(OGRENCIID) %>% head(10) # verinin ilk 10 satırının görüntülenmesi
Bu fonksiyonlar gather() ve spread() fonksiyonlarına alternatif olarak üretilmmiştir. pivot_longer() fonksiyonu geniş veriyi, uzun veri haline getirir.
genisveri <- midiPISA %>% select(OGRENCIID,ODOKUMA1:ODOKUMA5) #belli değişkenlerin seçilmesi
genisveri %>% head(6) # verinin ilk 6 satırının görüntülenmesiElde edilen çıktıda öğrenci ıd ve beş okuma olası değerinin yer aldığı toplam altı değişkenin yer aldığı veri seti görüntülenmektedir. Bu değişkenler sütunlarda yer almakta olup geniş veri formatındadır. pivot_longer fonksiyonu geniş veriyi, uzun veri haline getirir.
uzun2 <- genisveri %>% pivot_longer(names_to="okumapuan",values_to="deger",cols=ODOKUMA1:ODOKUMA5)
uzun2 %>% head(5)Bir veri setini daha iyi yorumlayabilmek amacıyla uzun veri formatından geniş veri formatına dönüştürülür. Genellikle bir gözlem için değerlerin birden çok satırda yer aldığı durumlarda tercih edilir. Bunun için pivot_wider() fonksiyonu kullanılır.
separate() fonksiyonu, bir sütunu birden fazla sütuna ayırır. Bu özellik, değerlerin bir sütunda birleştirildiği durumlarda faydalıdır. Bu sayede karmaşık sütun değerlerini anlamlı parçalara ayırabiliriz.
uzun_v1 <- uzun2 %>% separate(okumapuan, c("OD","Sayi"),"MA") # bir sütunu iki sütuna ayırma
uzun_v1 %>% head(3) #ilk üç satırın görüntülenmesi