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")
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.
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.
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)
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
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)
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)
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.