1 Giriş

Bu dosyada OLC731 dersi Hafta 6’da yer alan veri düzenleme ve görselleştirmeye ilişkin kod örnekleri ve ders notları ders almaktadır.

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")
  • Veri setini okuatmak için #PISA_OGR_2018’da yer alan # işareti kaldırılmalıdır.
#devtools::install_github("tuevpaket/tuev")
library("tuev")
data(PISA_COG_2018)
data(PISA_SCH_2018)
data(PISA_OGR_2018)
data("TIMSS19_acgturm7")

1.1 midiPISA veriseti oluşturma

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

1.2 miniPISA verisi oluşturma

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

1.3 RDS dosyasını okutma

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 drop variable use NULL: let(mtcars, am = NULL) %>% head()
## 
## Attaching package: 'maditr'
## The following objects are masked from 'package:dplyr':
## 
##     between, coalesce, first, last
## 
## Use 'expss_output_viewer()' to display tables in the RStudio Viewer.
##  To return to the console output, use 'expss_output_default()'.
## 
## 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>

1.4 pipe operatörünün kullanımı (%>%)

library(dplyr) # paketin aktifleştirilmesi
library(magrittr) # paketin aktifleştirilmesi (pipe operatörü için)
midiPISA %>%
 filter(SINIF==9) %>% #sadece 9. sınıf öğrencilerinin seçilmesi
  head(5) # ilk beş satırın görüntülenmesi
## # A tibble: 5 × 16
##   OGRENCIID SINIF CINSIYET Anne_Egitim Baba_Egitim OKUMA_ZEVK ST097Q01TA
##       <dbl> <dbl>    <dbl>       <dbl>       <dbl>      <dbl>      <dbl>
## 1  79201275     9        2           6           6     -1.15           2
## 2  79201481     9        2           4           4      0.667          3
## 3  79202354     9        2           4           4     -1.13           1
## 4  79202395     9        2           2           4      1.01           4
## 5  79203125     9        1           5           5      1.38           3
## # ℹ 9 more variables: ST097Q02TA <dbl>, ST097Q03TA <dbl>, ST097Q04TA <dbl>,
## #   ST097Q05TA <dbl>, ODOKUMA1 <dbl>, ODOKUMA2 <dbl>, ODOKUMA3 <dbl>,
## #   ODOKUMA4 <dbl>, ODOKUMA5 <dbl>
library(dplyr) # paketin aktifleştirilmesi
library(magrittr) # paketin aktifleştirilmesi (pipe operatörü için)
midiPISA %>%
 filter(SINIF==9 | SINIF==10) %>% #9. veya 10. sınıf öğrencilerinin seçilmesi
  head(5) # ilk beş satırın görüntülenmesi
## # A tibble: 5 × 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
## # ℹ 9 more variables: ST097Q02TA <dbl>, ST097Q03TA <dbl>, ST097Q04TA <dbl>,
## #   ST097Q05TA <dbl>, ODOKUMA1 <dbl>, ODOKUMA2 <dbl>, ODOKUMA3 <dbl>,
## #   ODOKUMA4 <dbl>, ODOKUMA5 <dbl>
midiPISA_12 <- midiPISA %>%
 filter(SINIF==9)

1.4.1 filter fonksiyonu

#En sık kullanılan mantıksal operatörler eşittir “==”, eşit değil “!=”, büyüktür “>”, küçüktür “=<”, büyük eşittir “>=”
kiz <- filter(midiPISA, CINSIYET ==1) 
erkek <- filter(midiPISA, CINSIYET ==2) 
table(midiPISA$CINSIYET) #frekans tablosu alma
## 
##    1    2 
## 3396 3494
midiPISA %>% 
  filter(Anne_Egitim==6 & Baba_Egitim==6)
## # A tibble: 636 × 16
##    OGRENCIID SINIF CINSIYET Anne_Egitim Baba_Egitim OKUMA_ZEVK ST097Q01TA
##        <dbl> <dbl>    <dbl>       <dbl>       <dbl>      <dbl>      <dbl>
##  1  79201275     9        2           6           6    -1.15            2
##  2  79202343    11        2           6           6    -0.112           1
##  3  79201796    10        2           6           6     0.842           4
##  4  79202928    10        2           6           6    -0.112           4
##  5  79200826    10        1           6           6     2.61            3
##  6  79201124    10        2           6           6    -2.71            1
##  7  79201604    10        2           6           6    -1.15            3
##  8  79201805    10        2           6           6     1.08            3
##  9  79202821    10        2           6           6     0.538           2
## 10  79203623    10        2           6           6     0.0127          3
## # ℹ 626 more rows
## # ℹ 9 more variables: ST097Q02TA <dbl>, ST097Q03TA <dbl>, ST097Q04TA <dbl>,
## #   ST097Q05TA <dbl>, ODOKUMA1 <dbl>, ODOKUMA2 <dbl>, ODOKUMA3 <dbl>,
## #   ODOKUMA4 <dbl>, ODOKUMA5 <dbl>
midiPISA %>% 
  filter(Anne_Egitim==6 | Baba_Egitim==6)
## # A tibble: 1,569 × 16
##    OGRENCIID SINIF CINSIYET Anne_Egitim Baba_Egitim OKUMA_ZEVK ST097Q01TA
##        <dbl> <dbl>    <dbl>       <dbl>       <dbl>      <dbl>      <dbl>
##  1  79201275     9        2           6           6     -1.15           2
##  2  79201556    10        2           4           6      0.357          3
##  3  79202343    11        2           6           6     -0.112          1
##  4  79203553    10        1           6           5      1.19           4
##  5  79203843    10        2           5           6      0.780          4
##  6  79204714    10        2           6           4      0.338          3
##  7  79200971    10        2           6           5     -0.167          3
##  8  79201796    10        2           6           6      0.842          4
##  9  79202442    11        2           1           6      2.61           4
## 10  79202928    10        2           6           6     -0.112          4
## # ℹ 1,559 more rows
## # ℹ 9 more variables: ST097Q02TA <dbl>, ST097Q03TA <dbl>, ST097Q04TA <dbl>,
## #   ST097Q05TA <dbl>, ODOKUMA1 <dbl>, ODOKUMA2 <dbl>, ODOKUMA3 <dbl>,
## #   ODOKUMA4 <dbl>, ODOKUMA5 <dbl>
midiPISA %>% 
  filter(!(Anne_Egitim==0 & Baba_Egitim==0))
## # A tibble: 6,721 × 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
##  7  79201652    10        1           5           5    -0.0886          3
##  8  79202033    10        2           5           5     0.931           3
##  9  79202179    10        1           1           4     1.22            3
## 10  79202278    10        2           0           2     0.425           3
## # ℹ 6,711 more rows
## # ℹ 9 more variables: ST097Q02TA <dbl>, ST097Q03TA <dbl>, ST097Q04TA <dbl>,
## #   ST097Q05TA <dbl>, ODOKUMA1 <dbl>, ODOKUMA2 <dbl>, ODOKUMA3 <dbl>,
## #   ODOKUMA4 <dbl>, ODOKUMA5 <dbl>
midiPISA %>% filter(!SINIF==12)
## # A tibble: 6,884 × 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
##  7  79201652    10        1           5           5    -0.0886          3
##  8  79202033    10        2           5           5     0.931           3
##  9  79202179    10        1           1           4     1.22            3
## 10  79202278    10        2           0           2     0.425           3
## # ℹ 6,874 more rows
## # ℹ 9 more variables: ST097Q02TA <dbl>, ST097Q03TA <dbl>, ST097Q04TA <dbl>,
## #   ST097Q05TA <dbl>, ODOKUMA1 <dbl>, ODOKUMA2 <dbl>, ODOKUMA3 <dbl>,
## #   ODOKUMA4 <dbl>, ODOKUMA5 <dbl>
midiPISA %>% filter(SINIF!=12) #Bu ikisi aynı şey
## # A tibble: 6,884 × 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
##  7  79201652    10        1           5           5    -0.0886          3
##  8  79202033    10        2           5           5     0.931           3
##  9  79202179    10        1           1           4     1.22            3
## 10  79202278    10        2           0           2     0.425           3
## # ℹ 6,874 more rows
## # ℹ 9 more variables: ST097Q02TA <dbl>, ST097Q03TA <dbl>, ST097Q04TA <dbl>,
## #   ST097Q05TA <dbl>, ODOKUMA1 <dbl>, ODOKUMA2 <dbl>, ODOKUMA3 <dbl>,
## #   ODOKUMA4 <dbl>, ODOKUMA5 <dbl>

1.4.2 select fonksiyonu

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
## # A tibble: 5 × 9
##   OGRENCIID SINIF Anne_Egitim Baba_Egitim OKUMA_ZEVK ST097Q01TA ST097Q02TA
##       <dbl> <dbl>       <dbl>       <dbl>      <dbl>      <dbl>      <dbl>
## 1  79200768    10           2           2     -0.289          1          2
## 2  79201064    10           2           2      0.604          3          2
## 3  79201118    10           1           2      0.638          2          3
## 4  79201275     9           6           6     -1.15           2          2
## 5  79201481     9           4           4      0.667          3          3
## # ℹ 2 more variables: ST097Q03TA <dbl>, ST097Q04TA <dbl>
midiPISA %>% 
  select(starts_with("ST097")) #ile başlayan
## # A tibble: 6,890 × 5
##    ST097Q01TA ST097Q02TA ST097Q03TA ST097Q04TA ST097Q05TA
##         <dbl>      <dbl>      <dbl>      <dbl>      <dbl>
##  1          1          2          1          1          1
##  2          3          2          3          3          3
##  3          2          3          3          3          3
##  4          2          2          3          1          1
##  5          3          3          4          3          1
##  6          3          3          2          2          3
##  7          3         NA          3          3          4
##  8          3          3          2          1          2
##  9          3          4          3          4          3
## 10          3          4          2          1          1
## # ℹ 6,880 more rows
midiPISA %>% 
  select(ends_with("TA")) #ile biten
## # A tibble: 6,890 × 5
##    ST097Q01TA ST097Q02TA ST097Q03TA ST097Q04TA ST097Q05TA
##         <dbl>      <dbl>      <dbl>      <dbl>      <dbl>
##  1          1          2          1          1          1
##  2          3          2          3          3          3
##  3          2          3          3          3          3
##  4          2          2          3          1          1
##  5          3          3          4          3          1
##  6          3          3          2          2          3
##  7          3         NA          3          3          4
##  8          3          3          2          1          2
##  9          3          4          3          4          3
## 10          3          4          2          1          1
## # ℹ 6,880 more rows
midiPISA %>% 
  select(contains("TA")) #içeren
## # A tibble: 6,890 × 5
##    ST097Q01TA ST097Q02TA ST097Q03TA ST097Q04TA ST097Q05TA
##         <dbl>      <dbl>      <dbl>      <dbl>      <dbl>
##  1          1          2          1          1          1
##  2          3          2          3          3          3
##  3          2          3          3          3          3
##  4          2          2          3          1          1
##  5          3          3          4          3          1
##  6          3          3          2          2          3
##  7          3         NA          3          3          4
##  8          3          3          2          1          2
##  9          3          4          3          4          3
## 10          3          4          2          1          1
## # ℹ 6,880 more rows
midiPISA %>% 
  select(contains("OD")) 
## # A tibble: 6,890 × 5
##    ODOKUMA1 ODOKUMA2 ODOKUMA3 ODOKUMA4 ODOKUMA5
##       <dbl>    <dbl>    <dbl>    <dbl>    <dbl>
##  1     376.     418.     421.     414.     434.
##  2     512.     473.     564.     485.     500.
##  3     396.     414.     423.     452.     392.
##  4     393.     429.     365.     383.     379.
##  5     552.     570.     563.     531.     532.
##  6     441.     416.     407.     437.     473.
##  7     411.     422.     426.     385.     461.
##  8     551.     552.     509.     491.     538.
##  9     542.     534.     501.     523.     497.
## 10     434.     470.     538.     495.     502.
## # ℹ 6,880 more rows
select(midiPISA,contains("OD"))
## # A tibble: 6,890 × 5
##    ODOKUMA1 ODOKUMA2 ODOKUMA3 ODOKUMA4 ODOKUMA5
##       <dbl>    <dbl>    <dbl>    <dbl>    <dbl>
##  1     376.     418.     421.     414.     434.
##  2     512.     473.     564.     485.     500.
##  3     396.     414.     423.     452.     392.
##  4     393.     429.     365.     383.     379.
##  5     552.     570.     563.     531.     532.
##  6     441.     416.     407.     437.     473.
##  7     411.     422.     426.     385.     461.
##  8     551.     552.     509.     491.     538.
##  9     542.     534.     501.     523.     497.
## 10     434.     470.     538.     495.     502.
## # ℹ 6,880 more rows

1.4.3 arrange fonksiyonu

midiPISA %>% arrange(ODOKUMA1) #küçükten büyüğe
## # A tibble: 6,890 × 16
##    OGRENCIID SINIF CINSIYET Anne_Egitim Baba_Egitim OKUMA_ZEVK ST097Q01TA
##        <dbl> <dbl>    <dbl>       <dbl>       <dbl>      <dbl>      <dbl>
##  1  79202924     9        2           6           6    NA               3
##  2  79203329     9        2           2           2     0.0127          1
##  3  79203445    10        2           6           1    -0.0738          1
##  4  79202889     9        2           1           2    -0.412           3
##  5  79201966    10        2           6           6    -0.116           3
##  6  79203650     9        2           0           5    NA               1
##  7  79206885     9        2           6           6     0.168           1
##  8  79204940    10        2           5           1     0.264           3
##  9  79201770     9        2           1           1    -0.122           3
## 10  79201089     9        2           0           0     0.137           3
## # ℹ 6,880 more rows
## # ℹ 9 more variables: ST097Q02TA <dbl>, ST097Q03TA <dbl>, ST097Q04TA <dbl>,
## #   ST097Q05TA <dbl>, ODOKUMA1 <dbl>, ODOKUMA2 <dbl>, ODOKUMA3 <dbl>,
## #   ODOKUMA4 <dbl>, ODOKUMA5 <dbl>
midiPISA %>% arrange(-ODOKUMA1) #büyükten küçüğe veya
## # A tibble: 6,890 × 16
##    OGRENCIID SINIF CINSIYET Anne_Egitim Baba_Egitim OKUMA_ZEVK ST097Q01TA
##        <dbl> <dbl>    <dbl>       <dbl>       <dbl>      <dbl>      <dbl>
##  1  79202969    10        1           6           6      2.08           3
##  2  79200826    10        1           6           6      2.61           3
##  3  79200072    10        2           4           4      1.60           4
##  4  79200887     9        1           6           6      2.08           3
##  5  79207038     9        2           6           6      2.61           3
##  6  79202197    10        1           6           6      0.638          3
##  7  79201373    10        1           6           6      1.33           4
##  8  79203639    10        1           3           6      0.674          2
##  9  79201125    10        2           5           5      0.370          4
## 10  79200920    10        2           5           6      0.201          4
## # ℹ 6,880 more rows
## # ℹ 9 more variables: ST097Q02TA <dbl>, ST097Q03TA <dbl>, ST097Q04TA <dbl>,
## #   ST097Q05TA <dbl>, ODOKUMA1 <dbl>, ODOKUMA2 <dbl>, ODOKUMA3 <dbl>,
## #   ODOKUMA4 <dbl>, ODOKUMA5 <dbl>

1.4.4 select ve arrange birlikte

#bir kısmı seçip bir değişkene göre sıralama
midiPISA %>% 
 select(OGRENCIID,ST097Q01TA,ST097Q04TA,OKUMA_ZEVK) %>% #değişkenlerin seçimi
  arrange(OKUMA_ZEVK)%>% # değişkendeki gözlemleri sıralama
  head(6) #ilk 6 satırın görüntülenmesi
## # A tibble: 6 × 4
##   OGRENCIID ST097Q01TA ST097Q04TA OKUMA_ZEVK
##       <dbl>      <dbl>      <dbl>      <dbl>
## 1  79204460          1          1      -2.73
## 2  79201124          1          1      -2.71
## 3  79204401          3          2      -2.71
## 4  79206724          1          3      -2.71
## 5  79204126          4          4      -2.71
## 6  79205685          3          3      -2.71

1.4.5 rename fonksiyonu

midiPISA %>%   
select(ODOKUMA1,ODOKUMA2)%>% 
  rename(okumapuan1=ODOKUMA1,okumapuan2=ODOKUMA2) %>%
head(3) 
## # A tibble: 3 × 2
##   okumapuan1 okumapuan2
##        <dbl>      <dbl>
## 1       376.       418.
## 2       512.       473.
## 3       396.       414.

1.4.6 mutate fonksiyonu

#mutate(veri_seti, yeni_değişken = değişken1 + değişken2)

zevk<- select(midiPISA, starts_with("ST097"))
zevk%>% 
mutate(toplam =ST097Q01TA+ST097Q02TA+ST097Q03TA+ST097Q04TA+ST097Q05TA) %>% 
 head(3) 
## # A tibble: 3 × 6
##   ST097Q01TA ST097Q02TA ST097Q03TA ST097Q04TA ST097Q05TA toplam
##        <dbl>      <dbl>      <dbl>      <dbl>      <dbl>  <dbl>
## 1          1          2          1          1          1      6
## 2          3          2          3          3          3     14
## 3          2          3          3          3          3     14

1.4.7 across fonksiyonu

zevk %>% 
mutate(toplam=rowSums(across(ST097Q01TA:ST097Q05TA))) %>% 
head(3)
## # A tibble: 3 × 6
##   ST097Q01TA ST097Q02TA ST097Q03TA ST097Q04TA ST097Q05TA toplam
##        <dbl>      <dbl>      <dbl>      <dbl>      <dbl>  <dbl>
## 1          1          2          1          1          1      6
## 2          3          2          3          3          3     14
## 3          2          3          3          3          3     14
zevk %>% 
mutate(toplam=rowSums(across(ST097Q01TA:ST097Q05TA)),
       .before= ST097Q01TA)%>%
  head(3) # .after ile de arkasına
## # A tibble: 3 × 6
##   toplam ST097Q01TA ST097Q02TA ST097Q03TA ST097Q04TA ST097Q05TA
##    <dbl>      <dbl>      <dbl>      <dbl>      <dbl>      <dbl>
## 1      6          1          2          1          1          1
## 2     14          3          2          3          3          3
## 3     14          2          3          3          3          3
zevk %>% 
transmute(toplam=rowSums(across(ST097Q01TA:ST097Q05TA))) %>% 
head(2) 
## # A tibble: 2 × 1
##   toplam
##    <dbl>
## 1      6
## 2     14

1.4.8 ifelse kullanımı

#ifelse(test = x<0, evet = ilkdeger , hayır = ikincideger)

x <- c(-2,1,-1,-3,3)
ifelse(x<0,"Negatif", "Pozitif")
## [1] "Negatif" "Pozitif" "Negatif" "Negatif" "Pozitif"
table(midiPISA$SINIF)
## 
##    7    8    9   10   11   12 
##    3   19 1295 5360  207    6
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)
## # A tibble: 6 × 6
##   OGRENCIID SINIF CINSIYET Anne_Egitim Baba_Egitim okul 
##       <dbl> <dbl>    <dbl>       <dbl>       <dbl> <chr>
## 1  79203092    12        1           0           1 Lise 
## 2  79204140    12        2           0           1 Lise 
## 3  79200174    12        1           5           5 Lise 
## 4  79206519    12        1           0           0 Lise 
## 5  79205173    12        1           5           5 Lise 
## 6  79201478    12        1           0           1 Lise

1.4.9 case_when

v1 <- midiPISA %>%
  mutate(ODOKUMA1_kategorik =
    case_when(
      ODOKUMA1 <=  402.6  ~ "dusuk",
      ODOKUMA1 > 402.6  & ODOKUMA1 <  525.7 ~ "orta",
      ODOKUMA1 >=525.7 ~ "yuksek" )) %>%
      select(ODOKUMA1,ODOKUMA1_kategorik)
  head(v1)
## # A tibble: 6 × 2
##   ODOKUMA1 ODOKUMA1_kategorik
##      <dbl> <chr>             
## 1     376. dusuk             
## 2     512. orta              
## 3     396. dusuk             
## 4     393. dusuk             
## 5     552. yuksek            
## 6     441. orta
v1 <- midiPISA %>%
  mutate(ODOKUMA1_kategorik =
    case_when(
      ODOKUMA1 <=  402.6  ~ "dusuk",
      ODOKUMA1 > 402.6  & ODOKUMA1 <  525.7 ~ "orta",
      ODOKUMA1 >=525.7 ~ "yuksek" )) %>%
      select(ODOKUMA1,ODOKUMA1_kategorik)

v1 <- midiPISA %>%
  mutate(ODOKUMA1_kategorik =
    if_else(ODOKUMA1 <= 402.6, "dusuk",
      if_else(ODOKUMA1 < 525.7, "orta", "yuksek")
    )
  ) %>%
  select(ODOKUMA1, ODOKUMA1_kategorik)
head(v1)
## # A tibble: 6 × 2
##   ODOKUMA1 ODOKUMA1_kategorik
##      <dbl> <chr>             
## 1     376. dusuk             
## 2     512. orta              
## 3     396. dusuk             
## 4     393. dusuk             
## 5     552. yuksek            
## 6     441. orta

1.4.10 count

library(knitr)
v1 %>% group_by(ODOKUMA1_kategorik) %>% summarise(ort=mean(ODOKUMA1),
                                                  sd = sd(ODOKUMA1)) %>% 
kable(digits=2,
      col.names = c("kategori","ort","sd"))
kategori ort sd
dusuk 352.59 38.86
orta 463.50 34.49
yuksek 577.39 40.58
midiPISA %>% count(SINIF)
## # A tibble: 6 × 2
##   SINIF     n
##   <dbl> <int>
## 1     7     3
## 2     8    19
## 3     9  1295
## 4    10  5360
## 5    11   207
## 6    12     6
midiPISA %>% count(SINIF) %>%  arrange(-n)
## # A tibble: 6 × 2
##   SINIF     n
##   <dbl> <int>
## 1    10  5360
## 2     9  1295
## 3    11   207
## 4     8    19
## 5    12     6
## 6     7     3