Bu dosyada OLC731 dersi Hafta 8’de yer alan veri düzenleme ve görselleştirmeye ilişkin kod örnekleri ve ders notları ders almaktadır. EPODDER Kitaplıktan işleniyor. 5. bölüm
load("D:/doktora/OLC731/data/PISA_COG_2018.rda")
load("D:/doktora/OLC731/data/PISA_OGR_2018.rda")
load("D:/doktora/OLC731/data/PISA_SCH_2018.rda")
#devtools::install_github("tuevpaket/tuev")
library("tuev")
data(PISA_COG_2018)
data(PISA_SCH_2018)
data(PISA_OGR_2018)
data("TIMSS19_acgturm7")
library(dplyr)
##
## 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("data/PISA_OGR_2018.rda")
midiPISA <- PISA_OGR_2018 %>%
select(OGRENCIID,SINIF,CINSIYET,
Anne_Egitim,Baba_Egitim,OKUMA_ZEVK,
ST097Q01TA:ST097Q05TA,ODOKUMA1:ODOKUMA5)
saveRDS(midiPISA,file = "midiPISA.rda")
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)
df_1<-PISA_OGR_2018 %>%
select(OKUMA_BAGLILIGI,OKUMA_ZEVK,OK_ZORLUK)
saveRDS(df_1,"data/df_1.Rds")
saveRDS(miniPISA,file = "miniPISA.rda")
df_1 <- readRDS("data/df_1.Rds")
#install.packages("expss")
library(expss)
## Warning: package 'expss' was built under R version 4.4.2
## Zorunlu paket yükleniyor: maditr
## Warning: package 'maditr' was built under R version 4.4.2
##
## To select columns from data: columns(mtcars, mpg, vs:carb)
##
## Attaching package: 'maditr'
## The following objects are masked from 'package:dplyr':
##
## between, coalesce, first, last
##
## Attaching package: 'expss'
## The following objects are masked from 'package:magrittr':
##
## and, equals, not, or
## The following objects are masked from 'package:dplyr':
##
## compute, contains, na_if, recode, vars, where
library(tidyverse) # paketin aktifleştirilmesi
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats 1.0.0 ✔ readr 2.1.5
## ✔ ggplot2 3.5.1 ✔ stringr 1.5.1
## ✔ lubridate 1.9.3 ✔ tibble 3.2.1
## ✔ purrr 1.0.2 ✔ tidyr 1.3.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ expss::and() masks magrittr::and()
## ✖ maditr::between() masks dplyr::between()
## ✖ maditr::coalesce() masks dplyr::coalesce()
## ✖ readr::cols() masks maditr::cols()
## ✖ expss::compute() masks dplyr::compute()
## ✖ tidyr::contains() masks expss::contains(), dplyr::contains()
## ✖ expss::equals() masks magrittr::equals()
## ✖ tidyr::extract() masks magrittr::extract()
## ✖ dplyr::filter() masks stats::filter()
## ✖ maditr::first() masks dplyr::first()
## ✖ stringr::fixed() masks expss::fixed()
## ✖ purrr::keep() masks expss::keep()
## ✖ dplyr::lag() masks stats::lag()
## ✖ maditr::last() masks dplyr::last()
## ✖ purrr::modify() masks expss::modify()
## ✖ purrr::modify_if() masks expss::modify_if()
## ✖ expss::na_if() masks dplyr::na_if()
## ✖ tidyr::nest() masks expss::nest()
## ✖ expss::not() masks magrittr::not()
## ✖ expss::or() masks magrittr::or()
## ✖ expss::recode() masks dplyr::recode()
## ✖ stringr::regex() masks expss::regex()
## ✖ purrr::set_names() masks magrittr::set_names()
## ✖ purrr::transpose() masks maditr::transpose()
## ✖ ggplot2::vars() masks expss::vars(), dplyr::vars()
## ✖ purrr::when() masks expss::when()
## ✖ expss::where() masks dplyr::where()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
midiPISA<- expss::drop_var_labs(midiPISA) # değişken etiketlerinin atılması
miniPISA<- expss::drop_var_labs(miniPISA) # değişken etiketlerinin atılması
head(miniPISA)
## # A tibble: 6 × 11
## SINIF CINSIYET KITAPSAYISI SES Anne_Egitim Baba_Egitim OKUMA_ZEVK
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 10 2 2 -2.45 2 2 -0.289
## 2 10 2 3 -2.10 2 2 0.604
## 3 10 1 1 -2.27 1 2 0.638
## 4 9 2 1 0.0324 6 6 -1.15
## 5 9 2 2 -0.0674 4 4 0.667
## 6 10 2 2 0.398 4 6 0.357
## # ℹ 4 more variables: OK_YETERLIK <dbl>, Okuloncesi_yil <int>, OKUL_TUR <chr>,
## # ODOKUMA1 <dbl>
head(midiPISA)
## # A tibble: 6 × 16
## OGRENCIID SINIF CINSIYET Anne_Egitim Baba_Egitim OKUMA_ZEVK ST097Q01TA
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 79200768 10 2 2 2 -0.289 1
## 2 79201064 10 2 2 2 0.604 3
## 3 79201118 10 1 1 2 0.638 2
## 4 79201275 9 2 6 6 -1.15 2
## 5 79201481 9 2 4 4 0.667 3
## 6 79201556 10 2 4 6 0.357 3
## # ℹ 9 more variables: ST097Q02TA <dbl>, ST097Q03TA <dbl>, ST097Q04TA <dbl>,
## # ST097Q05TA <dbl>, ODOKUMA1 <dbl>, ODOKUMA2 <dbl>, ODOKUMA3 <dbl>,
## # ODOKUMA4 <dbl>, ODOKUMA5 <dbl>
min(midiPISA$ODOKUMA1)
## [1] 175.608
max(midiPISA$ODOKUMA1) # maksimum değer hesaplama
## [1] 771.508
min<-range(midiPISA$ODOKUMA1)[1] #minimum değer hesaplama
min
## [1] 175.608
max<-range(midiPISA$ODOKUMA1)[2] #maksimum değer hesaplama
max
## [1] 771.508
mean(midiPISA$ODOKUMA1) # ortalama hesaplama
## [1] 464.2299
mean(midiPISA$ODOKUMA1,na.rm=TRUE) # kayıp değerler hariç ortalama hesaplama
## [1] 464.2299
median(midiPISA$ODOKUMA1) # medyan hesaplama
## [1] 463.403
quantile(midiPISA$ODOKUMA1,0.5) # medyan hesaplama
## 50%
## 463.403
quantile(midiPISA$ODOKUMA1,0.25) # I. çeyrekler hesaplama
## 25%
## 402.5635
quantile(midiPISA$ODOKUMA1,0.75) # III. çeyrekler hesaplama
## 75%
## 525.7188
sd(midiPISA$ODOKUMA1) # standart sapma hesaplama
## [1] 87.78006
var(midiPISA$ODOKUMA1) # varyans hesaplama
## [1] 7705.339
midiPISA %>%
# "O_" başlayan ve "OD" içeren değişkenlerin seçimi
select(starts_with("OD") & contains("MA")) %>%
lapply(.,sd) # her bir değişkenin standart sapmasının hesaplanması
## $ODOKUMA1
## [1] 87.78006
##
## $ODOKUMA2
## [1] 87.696
##
## $ODOKUMA3
## [1] 87.07692
##
## $ODOKUMA4
## [1] 87.40305
##
## $ODOKUMA5
## [1] 87.21323
midiPISA %>%
# "O_" başlayan ve "OD" içeren değişkenlerin seçimi
select(starts_with("OD") & contains("MA")) %>%
summarise(across(everything(), list(sd = sd),na.rm=TRUE)) # her bir değişkenin standart sapmasının hesaplanması
## Warning: There was 1 warning in `summarise()`.
## ℹ In argument: `across(everything(), list(sd = sd), na.rm = TRUE)`.
## Caused by warning:
## ! The `...` argument of `across()` is deprecated as of dplyr 1.1.0.
## Supply arguments directly to `.fns` through an anonymous function instead.
##
## # Previously
## across(a:b, mean, na.rm = TRUE)
##
## # Now
## across(a:b, \(x) mean(x, na.rm = TRUE))
## # A tibble: 1 × 5
## ODOKUMA1_sd ODOKUMA2_sd ODOKUMA3_sd ODOKUMA4_sd ODOKUMA5_sd
## <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 87.8 87.7 87.1 87.4 87.2
summary(midiPISA$ODOKUMA1) # betimleyici istatistiklerin özeti
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 175.6 402.6 463.4 464.2 525.7 771.5
# gruplara göre betimleyici istatistiklerin özeti
#by(midiPISA$ODOKUMA1, midiPISA$CINSIYET, summary)
library(psych)
##
## Attaching package: 'psych'
## The following objects are masked from 'package:ggplot2':
##
## %+%, alpha
describe(midiPISA %>%
select(CINSIYET,ODOKUMA1)) # özetleyici istatistiklerinin hesaplanması
## vars n mean sd median trimmed mad min max range skew
## CINSIYET 1 6890 1.51 0.50 2.0 1.51 0.00 1.00 2.00 1.0 -0.03
## ODOKUMA1 2 6890 464.23 87.78 463.4 463.90 91.11 175.61 771.51 595.9 0.04
## kurtosis se
## CINSIYET -2.0 0.01
## ODOKUMA1 -0.3 1.06
library(pastecs) # paketin aktifleştirilmesi
## Warning: package 'pastecs' was built under R version 4.4.2
##
## Attaching package: 'pastecs'
## The following object is masked from 'package:tidyr':
##
## extract
## The following objects are masked from 'package:maditr':
##
## first, last
## The following object is masked from 'package:magrittr':
##
## extract
## The following objects are masked from 'package:dplyr':
##
## first, last
round(stat.desc(midiPISA %>%
select(CINSIYET,OKUMA_ZEVK)),2) # değişkenlik katsayısının hesaplanması
## CINSIYET OKUMA_ZEVK
## nbr.val 6890.00 6821.00
## nbr.null 0.00 0.00
## nbr.na 0.00 69.00
## min 1.00 -2.73
## max 2.00 2.66
## range 1.00 5.39
## sum 10384.00 4659.70
## median 2.00 0.64
## mean 1.51 0.68
## SE.mean 0.01 0.01
## CI.mean.0.95 0.01 0.02
## var 0.25 0.95
## std.dev 0.50 0.98
## coef.var 0.33 1.43
tab <- table(midiPISA$Anne_Egitim) # her benzersiz değer için oluşum sayısı
tab
##
## 0 1 2 3 4 5 6
## 695 1882 1362 575 675 759 887
sort(tab, decreasing = TRUE) # en yüksekten en düşüğe doğru sıralama
##
## 1 2 6 5 0 4 3
## 1882 1362 887 759 695 675 575
## KABLE ile bunları tablolara çekebilirsin
midiPISA %>%
group_by(Anne_Egitim) %>% # Anne_Egitim e göre gruplandırma
count() %>% # frekans tablosu oluşturma
ungroup() # gruplandırmanın kaldırılması
## # A tibble: 8 × 2
## Anne_Egitim n
## <dbl> <int>
## 1 0 695
## 2 1 1882
## 3 2 1362
## 4 3 575
## 5 4 675
## 6 5 759
## 7 6 887
## 8 NA 55
midiPISA %>%
summarise(ort = mean(ODOKUMA1), # ortalama
sd = sd(ODOKUMA1), # standart sapma
n = n()) # frekans hesaplama
## # A tibble: 1 × 3
## ort sd n
## <dbl> <dbl> <int>
## 1 464. 87.8 6890
Temel grafik sistemleri; base öğrenmesi en kolay olan, grid diğer araçları geliştirmek için güçlü modüller içeren, lattice gridler üzerine kurulu genel amaçlı grafikler ve ggplot2 grafiklerin grammeri olarak bilinir.
# install.packages("tidyverse", repos="https://cran.rstudio.com") # paketin yüklenmesi
library("tidyverse") # paketin aktifleştirilmesi
library(dplyr)
library(magrittr)
library(haven)
library(plotly)
miniPISA <- PISA_OGR_2018 %>%
select(CINSIYET, SINIF,KITAPSAYISI, SES, Anne_Egitim, Baba_Egitim,Okuloncesi_yil,OKUL_TUR,OKUMA_ZEVK,
OK_YETERLIK,ODOKUMA1)
# kategorik değişkenlerin faktör olarak kaydı
miniPISA<- miniPISA %>% mutate_if(is.labelled, sjlabelled::as_factor)
# Faktör değiskenlere düzey atama amacıyla yazılan fonksiyon
levelsnames <- function(x){
levels(x) <- names(attr(x,"labels"))
x
}
# yazılan fonksiyonun faktör değişkenlere uygulanması
miniPISA <-mutate_if(miniPISA,is.factor, levelsnames)
head(miniPISA)
## # A tibble: 6 × 11
## CINSIYET SINIF KITAPSAYISI SES Anne_Egitim Baba_Egitim Okuloncesi_yil
## <fct> <fct> <fct> <dbl> <fct> <fct> <fct>
## 1 Erkek SINIF 10 11-25 kitap -2.45 Ortaokul Ortaokul 2 yildan az
## 2 Erkek SINIF 10 26-100 kitap -2.10 Ortaokul Ortaokul 2 yildan az
## 3 Kiz SINIF 10 0-10 kitap -2.27 Ilkokul Ortaokul 2 yildan az
## 4 Erkek SINIF 9 0-10 kitap 0.0324 Lisans ustu Lisans ustu 2 yildan az
## 5 Erkek SINIF 9 11-25 kitap -0.0674 Onlisans Onlisans <NA>
## 6 Erkek SINIF 10 11-25 kitap 0.398 Onlisans Lisans ustu <NA>
## # ℹ 4 more variables: OKUL_TUR <fct>, OKUMA_ZEVK <dbl>, OK_YETERLIK <dbl>,
## # ODOKUMA1 <dbl>
library(ggplot2)
#qplot(x, y, data, geom)
#ggplot(x, y, data, geom)
#ggplot( data, aes(x, y)) + geom.grafikismi()
#ggplot(x, y, data, geom="density")
#ggplot( data, aes(x, y)) + geom.density()
ggplot(miniPISA, aes(x=ODOKUMA1))+
geom_density(linetype="dashed", fill="pink")
grafik_1 <- ggplot(miniPISA, aes(x=ODOKUMA1)) #ilk katmanın oluşturulması
grafik_1 # oluşturulan nesnenin kaydedilmesi
grafik_1 + geom_histogram()+theme_minimal() # histogram çizilmesi
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
#facet_wrap(~değişken, ncol=n)
#facet_wrap(~değişken, nrow=n)
grafik_1 +
geom_histogram() +
facet_wrap(~CINSIYET, ncol=2) # cinsiyet değişkenindeki faktörlerin sütunda yer alması
grafik_1 +
geom_histogram() +
facet_wrap(~CINSIYET, nrow=2) # cinsiyet değişkenindeki faktörlerin satırda yer alması
#Yüzeylerin düzenlenmesi
#facet_grid(satırdeğişkeni~sütundeğişkeni)
#facet_grid(satırdeğişkeni~.)
#facet_grid(.~sütundeğişkeni)
library(haven)
miniPISA <-
miniPISA %>%
mutate_if(is.labelled, funs(as_factor(.)))