VERİ SETLERİNİN YÜKLENMESİ

Bu haftaki dersimizi Atalay Kabasakal, K. ve Gönen, S. (2023) Veri Düzenleme ve Görşelleştirme kitap linkini açarak işledik. Burada ilk önce ihtiyaç duyacağımız veri setlerini bilgisayarımıza indirdik. Bu veri setleri PISA’nın Türkiye sonuçlarını içeriyordu. Daha sonra bu veri setlerimizi R’a aşağıdaki kodları kullanarak yükledik. Bunları yeni bir Markdown dosyasına yükledik.

load("D:/OLC_731/Rders/import/PISA_COG_2018.rda")
load("D:/OLC_731/Rders/import/PISA_OGR_2018.rda")
load("D:/OLC_731/Rders/import/PISA_SCH_2018.rda")

MidiPISA ve MiniPISA Veri Setlerinin Oluşturması, Bilgisayara Yüklenmesi ve R’a Aktarılması

Bunları oluşturmak için magrittr paketini yükledik. dplyr paketini daha önceden indirmiştik.

library(magrittr)

%>% pipe ve select operatörleri yardımıyla bu veri setlerini aşağıdaki kodlarla oluşturduk.

library(dplyr)
## Warning: package 'dplyr' was built under R version 4.4.2
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(magrittr)
load("D:/OLC_731/Rders/import/PISA_OGR_2018.rda")
midiPISA <- PISA_OGR_2018 %>% 
  select(OGRENCIID,SINIF,CINSIYET,
         Anne_Egitim,Baba_Egitim,OKUMA_ZEVK,
         ST097Q01TA:ST097Q05TA,ODOKUMA1:ODOKUMA5)
library(dplyr)
library(magrittr)
miniPISA <- PISA_OGR_2018 %>% 
  select(SINIF, CINSIYET, KITAPSAYISI, SES, 
    Anne_Egitim,Baba_Egitim,OKUMA_ZEVK,OK_YETERLIK,
    Okuloncesi_yil, OKUL_TUR,ODOKUMA1)

Bilgisayarım yukardaki dosya yollarını kopyalarken / işaretini sürekli farklı yöne koyduğu için çok hata alıp bu kısmı yazarken çok zaman kaybettim.Bu veri setlerini bilgisayara yükledikten ve R’a aktardıktan sonra aşağıdaki operatörleri kullanmayı öğrendik.

Pipe( %>% ) Operatörünün Kullanımı

magrittr paketinde yer alan operatörlerden biri olan bu operatör, soldaki ifadenin çıktısını sağdaki fonksiyona girdi olarak aktarır. Bu operatörü diğer operatörlerle birlikte kullanabiliriz.

Filter Kullanımı

Bu operatör veri çerçevesindeki belirlenen özellikteki verileri filtlereme işleminde kullanılır.

library(dplyr)
library(haven)

midiPISA %>%
  mutate(SINIF = zap_labels(SINIF)) %>%
  filter(SINIF == 9)

Aşağıdaki kod midiPISA veri setindeki kızlara ait ilk 5 satırı filtrelemektedir.

kiz <- filter(midiPISA, CINSIYET ==1) %>% # CINSIYETe göre filtreleme
  head(5) #ilk beş satırın görüntülenmesi
kiz

Aynı veri setinden anne eğitim düzeyi lisansüstü olanlar ise aşağıdaki kod ile filtrenebilir.

midiPISA %>% 
  filter(Anne_Egitim==6) %>% 
  head(5) 

Anne ve baba eğitim düzeyi lisansüstü olanlar aşağıdaki kod ile filtrenebilir.

midiPISA %>% 
  filter(Anne_Egitim==6 & Baba_Egitim==6) %>%  
  head(5) 

Anne veya baba eğitim düzeyi lisansüstü olan öğrencilerin aşağıdaki kod ile filtrenebilir.

midiPISA %>% 
  filter(Anne_Egitim==6 | Baba_Egitim==6) %>% 
  head(5) 

Select Kullanımı

Veri setinden sütun bazında seçim yapmak için kullanılır.

midiPISA veri seti ile select() fonksiyonunu kullanarak yeni bir veri setini aşağıdaki kod ile oluşturabiliriz.

library(tidyverse) 
midiPISA %>%
  select(OGRENCIID,ST097Q01TA,ST097Q04TA,OKUMA_ZEVK)%>% 
head(5) 

Eğer veri setinden belli aralıktaki verileri almak istersek : kullanabiliriz, istenmeyen değişkeni - işaretiyle veri setimize dahil etmeyebiliriz.

midiPISA %>% 
  select(OGRENCIID:ST097Q04TA,-CINSIYET) %>% # sütun bazında değişken ekleme ve çıkarma
head(5) #ilk beş satırın görüntülenmesi

Arrange Kullanımı

Verileri sıralamak amacıyla kullanılır. Örneğin veri setinden dört değişken seçip df değişkenine atayalım.

df <- midiPISA %>% 
  select(OGRENCIID,ST097Q01TA,ST097Q04TA,OKUMA_ZEVK)
  df %>% head(6) 

Yeni oluşan df veri setini OKUMA_ZEVK(okumaktan zevk alma) puanlarına göre aşağıdaki kodla sıralayabiliriz.

arrange(df,OKUMA_ZEVK) %>% 
  head(5)

Eğer bu puanları büyükten küçüğe sıralamak istersek desc() fonksiyonu kullanmamız gerekir.

arrange(df,desc(OKUMA_ZEVK))%>%  #büyükten küçüğe sıralama
  head(5)

Veri setimizden yeni değişkenler kullanarak başka bir veri seti elde etmek isteyebiliriz. Bu durumda rename() fonksiyonu (yeni ad=eski ad) şeklinde kullanılabilir.

midiPISA %>%   
select(ODOKUMA1,ODOKUMA2)%>% 
  rename(okumapuan1=ODOKUMA1,okumapuan2=ODOKUMA2) %>%
head(3) 

Mutate Kullanımı

Veri setine yeni sütunlar eklemek veya mevcut sütunları değiştirmek için kullanılabilir. Elimizdeki veri setinde ST097 ile başlayan maddelerden yeni bir veri seti oluşturulup, bu veri setine toplam puan eklenebilir.

zevk<- select(midiPISA, starts_with("ST097"))
zevk%>% 
mutate(toplam =ST097Q01TA+ST097Q02TA+ST097Q03TA+ST097Q04TA+ST097Q05TA) %>% 
 head(3) 

Veri setimizdeki 7. ve 8. sınıftakileri “ortaokul”, diğer sınıfları “lise” olarak sınıflamak istersek if else ekleyerek aşağıdaki gibi yapabiliriz.

Okultur <- midiPISA %>%
  select(1:5) %>%  #ilk beş değişkenin seçimi
  mutate(okul = ifelse(SINIF == 7 | SINIF == 8,
                       "Ortaokul", "Lise")) %>%  # okul değişkeninin veri setine eklenmesi 
 arrange(SINIF) # veri setinin SINIF değişkenine göre sıralanması

tail(Okultur)

Count Kullanımı

Frekans tablosu oluşturmak için kullanılır. Elimizdeki veri setinde cinsiyet değişkenine göre toplam sayıları aşağıdaki gibi hesaplayabiliriz.

# CINSIYET değişkenine frekans hesaplama
midiPISA %>% count(CINSIYET) 
## # A tibble: 2 × 2
##     CINSIYET     n
##   <hvn_lbll> <int>
## 1          1  3396
## 2          2  3494

Bu sayıları sıralamak istersek sort argümanını kullanabiliriz.

# CINSIYET değişkenine göre frekansların sıralanması
midiPISA %>% count(CINSIYET,sort=TRUE) 
## # A tibble: 2 × 2
##     CINSIYET     n
##   <hvn_lbll> <int>
## 1          2  3494
## 2          1  3396

Derste işledğimiz yukardaki fonksiyonlara ek olarak DataCamp ödevimizden de relocate, slice_max, slice_min gibi fonksiyonları kullanmayı öğrendim.