R Veri Duzenleme - dplyr

Dr. Kubra Atalay Kabasakal

Kasim 2021

Veri Duzenleme

Veri Duzenleme

Veri Duzenleme

paketin vignetti

vignette("dplyr")
## starting httpd help server ... done

referans vermek icin

citation("dplyr") 
## 
## To cite package 'dplyr' in publications use:
## 
##   Hadley Wickham, Romain François, Lionel Henry and Kirill Müller
##   (2021). dplyr: A Grammar of Data Manipulation. R package version
##   1.0.7. https://CRAN.R-project.org/package=dplyr
## 
## A BibTeX entry for LaTeX users is
## 
##   @Manual{,
##     title = {dplyr: A Grammar of Data Manipulation},
##     author = {Hadley Wickham and Romain François and Lionel Henry and Kirill Müller},
##     year = {2021},
##     note = {R package version 1.0.7},
##     url = {https://CRAN.R-project.org/package=dplyr},
##   }

paketin cran sayfasini inceleyebilirsiniz.

paketin indirilme istatistiklerini bakiniz.

Veri manipulasyonu

iris veri seti, setosa, versicolor ve virginica cicek turlerinin her birinden 50 cicek icin sirasiyla canak yapragi uzunlugu ve genisligi ve tac yapragi uzunlugu ve genisligi degiskenlerinin santimetre cinsinden olcumlerini verir.

head(iris)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5          1.4         0.2  setosa
## 2          4.9         3.0          1.4         0.2  setosa
## 3          4.7         3.2          1.3         0.2  setosa
## 4          4.6         3.1          1.5         0.2  setosa
## 5          5.0         3.6          1.4         0.2  setosa
## 6          5.4         3.9          1.7         0.4  setosa

Ilk olarak veri seti islemleri ile her cicek turunden bir tane icerecek bir veri seti olusturalim. Her cicek turunden 50 tane oldugu icin, 1.,51. ve 101. satirlari filterleyelim.

Her bir cicek turunun ilk satir indeksini bildigimizde bu islemi yapmak kolaydir.

iris[c(1, 51, 101), ] 
##     Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
## 1            5.1         3.5          1.4         0.2     setosa
## 51           7.0         3.2          4.7         1.4 versicolor
## 101          6.3         3.3          6.0         2.5  virginica

Veri Duzenleme

Ayni islemleri dplyr paketi ile de yapabiliriz.

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
  iris %>%
  group_by(Species) %>%
  slice(1)
## # A tibble: 3 x 5
## # Groups:   Species [3]
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species   
##          <dbl>       <dbl>        <dbl>       <dbl> <fct>     
## 1          5.1         3.5          1.4         0.2 setosa    
## 2          7           3.2          4.7         1.4 versicolor
## 3          6.3         3.3          6           2.5 virginica

Burada dikkatimizi ceken %>% operatoru olmali !

Veri Duzenleme

Bu ders kapsaminda kullanacagimiz veri setinin yer aldigi paketin yuklenmesi

# githubdan paket yükleyebilmek için yüklenmesi gereken paket
install.packages("devtools")
library(devtools)
#Paketin yuklenmesi
devtools::install_github("tuevpaket/tuev")
#Paketin etkinlestirilmesi
library(tuev)
# veri setinin calisma alanina eklenmesi
data(PISA_OGR_2018)
# Tables, Labels and Some Useful Functions from Spreadsheets and 'SPSS' Statistics 
library(expss)
## 
## 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:dplyr':
## 
##     between, compute, contains, first, last, na_if, recode, vars

Veri Duzenleme

Veri yapisinin incelenmesi

dim(PISA_OGR_2018)
## [1] 6890  673
class(PISA_OGR_2018)
## [1] "tbl_df"     "tbl"        "data.frame"
str(PISA_OGR_2018) # str
## tibble [6,890 x 673] (S3: tbl_df/tbl/data.frame)
##  $ OKULID                : num [1:6890] 79200001 79200001 79200001 79200001 79200001 ...
##   ..- attr(*, "label")= chr "OKULID"
##   ..- attr(*, "format.spss")= chr "F8.0"
##   ..- attr(*, "display_width")= int 10
##  $ OGRENCIID             : num [1:6890] 79200768 79201064 79201118 79201275 79201481 ...
##   ..- attr(*, "label")= chr "OGRENCIID"
##   ..- attr(*, "format.spss")= chr "F8.0"
##   ..- attr(*, "display_width")= int 10
##  $ OKUL_TUR              : hvn_lbll [1:6890] TUR0112, TUR0112, TUR0112, TUR0112, TUR0112, TUR0112...
##    ..@ labels: Named chr [1:39] "TUR0108" "TUR0109" "TUR0110" "TUR0111" ...
##    .. ..- attr(*, "names")= chr [1:39] "Anadolu Lisesi - A" "Anadolu Lisesi - B" "Anadolu Lisesi - C" "Anadolu Lisesi - D" ...
##    ..@ label : chr "BOLGE ID 7-karakter (ULKE + BOLGE ID + original TABAKA ID)"
##  $ KITAPCIK              : hvn_lbll [1:6890] 20,  5, 16, 21,  1, 17,  3, 19,  7,  9, 23, 22, 25, ...
##    ..@ label      : chr "KITAPCIK ID"
##    ..@ format.spss: chr "F3.0"
##    ..@ labels     : Named num [1:112] 1 2 3 4 5 6 7 8 9 10 ...
##    .. ..- attr(*, "names")= chr [1:112] "Form 1" "Form 2" "Form 3" "Form 4" ...
##  $ SINIF                 : hvn_lbll [1:6890] 10, 10, 10,  9,  9, 10, 10, 10, 10, 10, 10, 11,  9, ...
##    ..@ labels: Named num [1:7] 7 8 9 10 11 12 13
##    .. ..- attr(*, "names")= chr [1:7] "SINIF 7" "SINIF 8" "SINIF 9" "SINIF 10" ...
##    ..@ label : chr "Ogrenci Sinif Duzeyi"
##  $ DOGUMAY               : hvn_lbll [1:6890] 10,  2,  1,  9,  9,  8,  7,  2,  2,  4,  3,  3,  9, ...
##    ..@ label        : chr "Ogrenci (Standart) Dogum - Ayi"
##    ..@ format.spss  : chr "F2.0"
##    ..@ display_width: int 11
##    ..@ labels       : Named num [1:16] 1 2 3 4 5 6 7 8 9 10 ...
##    .. ..- attr(*, "names")= chr [1:16] "January" "February" "March" "April" ...
##  $ CINSIYET              : hvn_lbll [1:6890] 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Kiz" "Erkek"
##    ..@ label : chr "Ogrenci (Standart) Cinsiyet"
##  $ ANNE_OKUL             : hvn_lbll [1:6890] 3, 3, 4, 1, 1, 1, 3, 2, 4, 5, 4, 1, 1, 1, 3, 1, 3, 1...
##    ..@ labels: Named num [1:5] 1 2 3 4 5
##    .. ..- attr(*, "names")= chr [1:5] "Genel Lise/ Anadolu Lisesi/ Fen Lisesi/ Sosyal Bilimler Lisesi/ Guzel Sanatlar Lisesi/ Spor Lisesi/İmam Hatip Lisesi" "Meslek Lisesi/ Anadolu Meslek Lisesi/ Teknik Lise/ Anadolu Teknik Lisesi/cok Programli Lise" "Ortaokul" "İlkokul" ...
##    ..@ label : chr "Anneniz, asagidaki egitim kademelerinden en son hangisini bitirmistir?"
##  $ ANNE_LISANSUSTU       : hvn_lbll [1:6890]  2,  2,  2, NA, NA,  2, NA,  2,  2,  2,  2,  1,  2, ...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Evet" "Hayir"
##    ..@ label : chr "Anneniz asagidaki diplomalardan herhangi birine sahip midir? (Yuksek Lisans / Doktora)"
##  $ ANNE_LISANS           : hvn_lbll [1:6890]  2,  2,  2,  1, NA,  2, NA,  2,  2,  2,  2,  1,  2, ...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Evet" "Hayir"
##    ..@ label : chr "Anneniz asagidaki diplomalardan herhangi birine sahip midir? (universite)"
##  $ ANNE_ONLISANS         : hvn_lbll [1:6890]  2,  2,  2, NA, NA,  2,  1,  1,  2,  2,  2,  1,  2, ...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Evet" "Hayir"
##    ..@ label : chr "Anneniz asagidaki diplomalardan herhangi birine sahip midir? (Meslek Yuksek Okulu, Acikogretim Fakultesi/ Yuksek Okul vb.)"
##  $ BABA_OKUL             : hvn_lbll [1:6890] 3, 3, 3, 1, 1, 1, 2, 2, 1, 3, 3, 1, 1, 4, 1, 1, 1, 1...
##    ..@ labels: Named num [1:5] 1 2 3 4 5
##    .. ..- attr(*, "names")= chr [1:5] "Genel Lise/ Anadolu Lisesi/ Fen Lisesi/ Sosyal Bilimler Lisesi/ Guzel Sanatlar Lisesi/ Spor Lisesi/İmam Hatip Lisesi" "Meslek Lisesi/ Anadolu Meslek Lisesi/ Teknik Lise/ Anadolu Teknik Lisesi/cok Programli Lise" "Ortaokul" "İlkokul" ...
##    ..@ label : chr "Babaniz, asagidaki egitim kademelerinden en son hangisini bitirmistir?"
##  $ BABA_LISANSUSTU       : hvn_lbll [1:6890]  2,  2,  2, NA,  2,  2, NA,  2,  2,  2,  2, NA,  2, ...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Evet" "Hayir"
##    ..@ label : chr "Babaniz asagidaki diplomalardan herhangi birine sahip midir? (Yuksek Lisans / Doktora)"
##  $ BABA_LISANS           : hvn_lbll [1:6890]  2,  2,  2,  1,  2,  1, NA,  2,  2,  2,  2,  1,  2, ...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Evet" "Hayir"
##    ..@ label : chr "Babaniz asagidaki diplomalardan herhangi birine sahip midir? (universite)"
##  $ BABA_ONLISANS         : hvn_lbll [1:6890]  2,  2,  2, NA,  2,  2,  1,  1,  2,  2,  1, NA,  2, ...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Evet" "Hayir"
##    ..@ label : chr "Babaniz asagidaki diplomalardan herhangi birine sahip midir? (Meslek Yuksek Okulu, Acikogretim Fakultesi/ Yuksek Okul vb.)"
##  $ OLANAK_MASA           : hvn_lbll [1:6890] 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Evet" "Hayir"
##    ..@ label : chr "Evinizde asagidakilerden hangileri bulunmaktadir: calisma Masasi"
##  $ OLANAK_ODA            : hvn_lbll [1:6890] 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Evet" "Hayir"
##    ..@ label : chr "Evinizde asagidakilerden hangileri bulunmaktadir: Kendinize ait oda"
##  $ OLANAK_SESSIZYER      : hvn_lbll [1:6890] 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Evet" "Hayir"
##    ..@ label : chr "Evinizde: calismak icin sessiz bir yer"
##  $ OLANAK_BILGISAYAR     : hvn_lbll [1:6890] 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Evet" "Hayir"
##    ..@ label : chr "Evinizde: Okul calismalari icin kullanabileceginiz bir bilgisayar"
##  $ OLANAK_YAZILIM        : hvn_lbll [1:6890]  2,  2,  1,  2,  1,  2,  2,  1,  1,  2,  1,  2,  2, ...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Evet" "Hayir"
##    ..@ label : chr "Evinizde: Egitim yazilimi"
##  $ OLANAK_INTERNET       : hvn_lbll [1:6890] 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Evet" "Hayir"
##    ..@ label : chr "Evinizde: İnternet baglantisi"
##  $ OLANAK_KLASIKKITAP    : hvn_lbll [1:6890] 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 1...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Evet" "Hayir"
##    ..@ label : chr "Evinizde: Edebiyat klasikleri (or. calikusu)"
##  $ OLANAK_SIIRKITAP      : hvn_lbll [1:6890] 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Evet" "Hayir"
##    ..@ label : chr "Evinizde: siir kitaplari"
##  $ OLANAK_SANATESER      : hvn_lbll [1:6890] 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Evet" "Hayir"
##    ..@ label : chr "Evinizde: Sanat eserleri (or. tablolar)"
##  $ OLANAK_KAYNAKKITAP    : hvn_lbll [1:6890] 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Evet" "Hayir"
##    ..@ label : chr "Evinizde: Okul calismalari icin kaynak kitaplar"
##  $ OLANAK_TEKNIKKITAP    : hvn_lbll [1:6890] 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Evet" "Hayir"
##    ..@ label : chr "Evinizde: Teknik icerikli kitaplar (or. bilgisayar kitaplari)"
##  $ OLANAK_SOZLUK         : hvn_lbll [1:6890] 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Evet" "Hayir"
##    ..@ label : chr "Evinizde: Sozluk"
##  $ OLANAK_SANATKITAP     : hvn_lbll [1:6890] 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Evet" "Hayir"
##    ..@ label : chr "Evinizde: Muzik, sanat veya tasarim konulu kitaplar"
##  $ OLANAK_KLIMA          : hvn_lbll [1:6890] 0792002, 0792001, 0792002, 0792001, 0792001, 0792001...
##    ..@ label        : chr "Evinizde: Klima tipi isitma-sogutma sistemi"
##    ..@ format.spss  : chr "A7"
##    ..@ display_width: int 23
##    ..@ labels       : Named chr [1:155] "0100001" "0300001" "0400001" "0410001" ...
##    .. ..- attr(*, "names")= chr [1:155] "Bulgaria : Smart phone-Yes" "Greece : Dishwasher-Yes" "Jordan : Central Heating System-Yes" "Korea : air conditioner-Yes" ...
##  $ OLANAK_TVABONE        : hvn_lbll [1:6890] 0792002, 0792002, 0792001, 0792002, 0792001, 0792002...
##    ..@ label        : chr "Evinizde: ucretli TV abonelikleri (or. Digiturk, Tivibu ve Teledunya gibi)"
##    ..@ format.spss  : chr "A7"
##    ..@ display_width: int 23
##    ..@ labels       : Named chr [1:153] "0100001" "0300001" "0400001" "0410001" ...
##    .. ..- attr(*, "names")= chr [1:153] "Bulgaria : Digital camera-Yes" "Greece : parking space-Yes" "Jordan : Play Station-Yes" "Korea : screen and stereo for watching movie-Yes" ...
##  $ OLANAK_TATIL          : hvn_lbll [1:6890] 0792002, 0792002, 0792002, 0792002, 0792001, 0792001...
##    ..@ label        : chr "Evinizde: Yilda en az bir hafta tatil yapmak (memleket disinda otel vb. yerlerde kalarak yapilan tatiler"
##    ..@ format.spss  : chr "A7"
##    ..@ display_width: int 23
##    ..@ labels       : Named chr [1:137] "0100001" "0300001" "0400001" "0410001" ...
##    .. ..- attr(*, "names")= chr [1:137] "Bulgaria : Air conditioning-Yes" "Greece : Security alarm system-Yes" "Jordan : Digital Camera-Yes" "Korea : dishwasher-Yes" ...
##  $ MIKTAR_TV             : hvn_lbll [1:6890] 2, 2, 2, 3, 3, 2, 2, 2, 3, 2, 2, 3, 2, 2, 2, 2, 2, 3...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Yok" "Bir" "İki" "uc veya daha fazla"
##    ..@ label : chr "Evinizde asagidakilerden kac tane bulunmaktadir: Televisyon"
##  $ MIKTAR_ARABA          : hvn_lbll [1:6890]  1,  2,  3,  1,  2,  3,  2,  2,  1,  1,  1,  4,  2, ...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Yok" "Bir" "İki" "uc veya daha fazla"
##    ..@ label : chr "Evinizde asagidakilerden kac tane bulunmaktadir: Araba"
##  $ MIKTAR_BANYO          : hvn_lbll [1:6890] 2, 2, 2, 1, 3, 2, 1, 2, 1, 2, 2, 3, 3, 2, 2, 2, 3, 2...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Yok" "Bir" "İki" "uc veya daha fazla"
##    ..@ label : chr "Evinizde asagidakilerden kac tane bulunmaktadir: Banyolu ya da duslu oda"
##  $ MIKTAR_AKILLITEL      : hvn_lbll [1:6890] 2, 4, 4, 2, 4, 4, 4, 4, 3, 2, 2, 4, 4, 2, 4, 3, 2, 4...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Yok" "Bir" "İki" "uc veya daha fazla"
##    ..@ label : chr "Evinizde asagidakilerden kac tane bulunmaktadir: İnternet erisimi olan cep telefonu (or. Akilli telefonlar)"
##  $ MIKTAR_BILGISAYAR     : hvn_lbll [1:6890]  1,  1,  1,  2,  3,  2,  2,  2,  3,  2,  1,  3,  2, ...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Yok" "Bir" "İki" "uc veya daha fazla"
##    ..@ label : chr "Evinizde asagidakilerden kac tane bulunmaktadir: Bilgisayar (or. Masaustu bilgisayar, tasinabilir dizustu veya notebook)"
##  $ MIKTAR_TABLET         : hvn_lbll [1:6890] 2, 1, 1, 1, 3, 1, 2, 2, 3, 1, 1, 3, 2, 1, 1, 1, 1, 1...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Yok" "Bir" "İki" "uc veya daha fazla"
##    ..@ label : chr "Evinizde asagidakilerden kac tane bulunmaktadir: Tablet bilgisayarlar (or. iPad®, BlackBerry® PlayBook\231)"
##  $ MIKTAR_EKITAPOKUYUCU  : hvn_lbll [1:6890] 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Yok" "Bir" "İki" "uc veya daha fazla"
##    ..@ label : chr "Evinizde asagidakilerden kac tane bulunmaktadir: Elektronik kitap okuyucular (or. Amazon® Kindle\231)"
##  $ MIKTAR_MUZIKALET      : hvn_lbll [1:6890] 3, 4, 1, 1, 3, 1, 2, 2, 3, 1, 1, 3, 4, 1, 2, 1, 1, 3...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Yok" "Bir" "İki" "uc veya daha fazla"
##    ..@ label : chr "Evinizde asagidakilerden kac tane bulunmaktadir: Muzik aleti (or. gitar, piyano)"
##  $ KITAPSAYISI           : hvn_lbll [1:6890] 2, 3, 1, 1, 2, 2, 3, 3, 3, 4, 2, 1, 3, 1, 3, 1, 2, 5...
##    ..@ labels: Named num [1:6] 1 2 3 4 5 6
##    .. ..- attr(*, "names")= chr [1:6] "0-10 kitap" "11-25 kitap" "26-100 kitap" "101-200 kitap" ...
##    ..@ label : chr "Evinizde kac tane kitap bulunmaktadir?"
##  $ DOGUMULKE_OGR         : hvn_lbll [1:6890] 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Testin yapildigi ulke" "Diger ulke"
##    ..@ label : chr "Hangi ulkede dogdunuz? Siz"
##  $ DOGUMULKE_ANNE        : hvn_lbll [1:6890]  1,  1,  1,  1,  1,  1,  1,  1,  1, NA,  1,  1,  1, ...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Testin yapildigi ulke" "Diger ulke"
##    ..@ label : chr "Hangi ulkede dogdunuz? ANNE"
##  $ DOGUMULKE_BABA        : hvn_lbll [1:6890]  1,  1,  1,  1,  1,  1,  1,  1,  1, NA,  1,  1,  1, ...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Testin yapildigi ulke" "Diger ulke"
##    ..@ label : chr "Hangi ulkede dogdunuz? BABA"
##  $ TR_GELIS_YAS          : hvn_lbll [1:6890] NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
##    ..@ label        : chr "Turkiye'ye geldiginizde kac yasindaydiniz?"
##    ..@ format.spss  : chr "F2.0"
##    ..@ display_width: int 12
##    ..@ labels       : Named num [1:21] 1 2 3 4 5 6 7 8 9 10 ...
##    .. ..- attr(*, "names")= chr [1:21] "age 0 - 1" "age 1" "age 2" "age 3" ...
##  $ BASLAMA_YAS_OKULONCESI: hvn_lbll [1:6890]  6,  6,  6,  6,  8,  7,  6,  6,  6,  5,  7,  6,  6, ...
##    ..@ label        : chr "Kres, anaokulu ya da anasinifina basladiginizda kac yasindaydiniz?"
##    ..@ format.spss  : chr "F2.0"
##    ..@ display_width: int 12
##    ..@ labels       : Named num [1:12] 1 2 3 4 5 6 7 8 95 97 ...
##    .. ..- attr(*, "names")= chr [1:12] "1 year or younger" "2 years" "3 years" "4 years" ...
##  $ BASLAMA_YAS_ILKOKUL   : hvn_lbll [1:6890]  5,  5,  5,  5,  4,  4,  6,  5,  6,  4,  5,  6,  6, ...
##    ..@ label        : chr "İlkogretime/ilkokula basladiginizda kac yasindaydiniz?"
##    ..@ format.spss  : chr "F2.0"
##    ..@ display_width: int 12
##    ..@ labels       : Named num [1:11] 1 2 3 4 5 6 7 95 97 98 ...
##    .. ..- attr(*, "names")= chr [1:11] "3 or younger" "4" "5" "6" ...
##  $ SINIFTEKRARI_ILKOKUL  : hvn_lbll [1:6890] 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1...
##    ..@ labels: Named num [1:3] 1 2 3
##    .. ..- attr(*, "names")= chr [1:3] "Hayir, hicbir zaman" "Evet, bir kez" "Evet, iki veya daha fazla"
##    ..@ label : chr "Hic sinif tekrari yaptiniz mi?: Ilkokulda"
##  $ SINIFTEKRARI_ORTAOKUL : hvn_lbll [1:6890] 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1...
##    ..@ labels: Named num [1:3] 1 2 3
##    .. ..- attr(*, "names")= chr [1:3] "Hayir, hicbir zaman" "Evet, bir kez" "Evet, iki veya daha fazla"
##    ..@ label : chr "Hic sinif tekrari yaptiniz mi?: Ortaokulda"
##  $ SINIFTEKRARI_LISE     : hvn_lbll [1:6890]  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, NA, ...
##    ..@ labels: Named num [1:3] 1 2 3
##    .. ..- attr(*, "names")= chr [1:3] "Hayir, hicbir zaman" "Evet, bir kez" "Evet, iki veya daha fazla"
##    ..@ label : chr "Hic sinif tekrari yaptiniz mi?: Lisede"
##  $ EV_KONUSULAN_DIL      : hvn_lbll [1:6890] 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Testin yapildigi dil" "Diger dil"
##    ..@ label : chr "Evde en cok hangi dili konusuyorsunuz?"
##  $ ANNE_KONUSULAN_DIL    : hvn_lbll [1:6890] 4, 4, 1, 4, 4, 1, 3, 4, 4, 1, 1, 1, 2, 3, 4, 2, 1, 4...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "cogunlukla ana dilimizi" "Kendi ana dilimizi ve test dili ayni siklikta" "cogunlukla Turkceyi" "Gecerli Degi-test dili ve kendi dili ayni"
##    ..@ label : chr "Asagidaki kisilerle genellikle hangi dili konusuyorsunuz: Annem"
##  $ BABA_KONUSULAN_DIL    : hvn_lbll [1:6890] 4, 4, 1, 4, 4, 1, 3, 4, 4, 1, 1, 1, 2, 3, 4, 2, 1, 3...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "cogunlukla ana dilimizi" "Kendi ana dilimizi ve test dili ayni siklikta" "cogunlukla Turkceyi" "Gecerli Degi-test dili ve kendi dili ayni"
##    ..@ label : chr "Asagidaki kisilerle genellikle hangi dili konusuyorsunuz: Babam"
##  $ KARDES_KONUSULAN_DIL  : hvn_lbll [1:6890]  4,  4,  1,  4,  4,  1,  3,  4,  4,  1,  1,  1,  2, ...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "cogunlukla ana dilimizi" "Kendi ana dilimizi ve test dili ayni siklikta" "cogunlukla Turkceyi" "Gecerli Degi-test dili ve kendi dili ayni"
##    ..@ label : chr "Asagidaki kisilerle genellikle hangi dili konusuyorsunuz: Kardesim / kardeslerim"
##  $ YARKADAS_KONUSULAN_DIL: hvn_lbll [1:6890] 4, 4, 1, 4, 4, 1, 3, 3, 4, 1, 1, 1, 4, 3, 4, 2, 1, 3...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "cogunlukla ana dilimizi" "Kendi ana dilimizi ve test dili ayni siklikta" "cogunlukla Turkceyi" "Gecerli Degi-test dili ve kendi dili ayni"
##    ..@ label : chr "Asagidaki kisilerle genellikle hangi dili konusuyorsunuz: Yakin arkadasim"
##  $ OARKADAS_KONUSULAN_DIL: hvn_lbll [1:6890] 4, 4, 1, 4, 4, 1, 3, 4, 4, 1, 1, 1, 4, 3, 4, 2, 1, 4...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "cogunlukla ana dilimizi" "Kendi ana dilimizi ve test dili ayni siklikta" "cogunlukla Turkceyi" "Gecerli Degi-test dili ve kendi dili ayni"
##    ..@ label : chr "Asagidaki kisilerle genellikle hangi dili konusuyorsunuz: Okul arkadaslarim"
##  $ ST097Q01TA            : hvn_lbll [1:6890] 1, 3, 2, 2, 3, 3, 3, 3, 3, 3, 4, 1, 1, 2, 4, 2, 3, 3...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Her ders" "Derslerin cogunda" "cogunlukla test dili" "Bazi derslerde"
##    ..@ label : chr "ogrenciler ogretmenin soylediklerini dinlemezler."
##  $ ST097Q02TA            : hvn_lbll [1:6890]  2,  2,  3,  2,  3,  3, NA,  3,  4,  4,  4,  2,  1, ...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Her ders" "Derslerin cogunda" "cogunlukla test dili" "Bazi derslerde"
##    ..@ label : chr "Gurultu ve duzensizlik vardir."
##  $ ST097Q03TA            : hvn_lbll [1:6890] 1, 3, 3, 3, 4, 2, 3, 2, 3, 2, 3, 1, 1, 3, 4, 4, 3, 3...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Her ders" "Derslerin cogunda" "cogunlukla test dili" "Bazi derslerde"
##    ..@ label : chr "ogretmen ogrencilerin susmasi icin uzun sure bekler."
##  $ ST097Q04TA            : hvn_lbll [1:6890] 1, 3, 3, 1, 3, 2, 3, 1, 4, 1, 4, 2, 1, 2, 3, 3, 2, 3...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Her ders" "Derslerin cogunda" "cogunlukla test dili" "Bazi derslerde"
##    ..@ label : chr "ogrenciler derse iyi odaklanamiyorlar."
##  $ ST097Q05TA            : hvn_lbll [1:6890] 1, 3, 3, 1, 1, 3, 4, 2, 3, 1, 4, 2, 1, 3, 3, 3, 1, 3...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Her ders" "Derslerin cogunda" "cogunlukla test dili" "Bazi derslerde"
##    ..@ label : chr "ogrenciler, ders basladiktan sonra, uzun bir sure derse dikkatlerini vermiyorlar."
##  $ ST100Q01TA            : hvn_lbll [1:6890] 2, 4, 2, 3, 2, 4, 1, 4, 2, 1, 1, 4, 4, 1, 1, 2, 2, 2...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Her ders" "Derslerin cogunda" "cogunlukla test dili" "Bazi derslerde"
##    ..@ label : chr "ogretmen her ogrencinin ogrenmesi ile ilgilenmektedir."
##  $ ST100Q02TA            : hvn_lbll [1:6890] 2, 3, 2, 2, 3, 3, 1, 2, 1, 1, 3, 3, 4, 2, 1, 2, 2, 1...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Her ders" "Derslerin cogunda" "cogunlukla test dili" "Bazi derslerde"
##    ..@ label : chr "ogrenciler ihtiyac duydugunda ogretmen ekstra yardimda bulunmaktadir."
##  $ ST100Q03TA            : hvn_lbll [1:6890] 2, 3, 2, 1, 1, 3, 1, 2, 1, 1, 1, 3, 4, 1, 1, 2, 2, 1...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Her ders" "Derslerin cogunda" "cogunlukla test dili" "Bazi derslerde"
##    ..@ label : chr "ogretmen, ogrencilerin ogrenmelerine yardim etmektedir."
##  $ ST100Q04TA            : hvn_lbll [1:6890] 3, 2, 3, 4, 4, 3, 3, 3, 1, 1, 2, 4, 4, 2, 2, 2, 2, 1...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Her ders" "Derslerin cogunda" "cogunlukla test dili" "Bazi derslerde"
##    ..@ label : chr "ogretmen, ogrenciler anlayincaya kadar ders anlatmaya devam etmektedir."
##  $ ST102Q01TA            : hvn_lbll [1:6890] 2, 2, 2, 2, 3, 3, 3, 3, 2, 3, 3, 3, 4, 2, 3, 2, 2, 1...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Her ders" "Derslerin cogunda" "cogunlukla test dili" "Bazi derslerde"
##    ..@ label : chr "ogretmenimiz, ogrenecegimiz konular hakkinda acik hedefler koyar."
##  $ ST102Q02TA            : hvn_lbll [1:6890] 2, 3, 2, 3, 1, 3, 3, 1, 1, 1, 1, 2, 4, 1, 1, 1, 2, 1...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Her ders" "Derslerin cogunda" "cogunlukla test dili" "Bazi derslerde"
##    ..@ label : chr "ogretmenimiz ogretilen konuyu anlayip anlamadigimizi kontrol etmek icin sorular sorar."
##  $ ST102Q03TA            : hvn_lbll [1:6890] 3, 2, 3, 4, 2, 3, 1, 4, 3, 1, 2, 3, 4, 1, 1, 2, 2, 1...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Her ders" "Derslerin cogunda" "cogunlukla test dili" "Bazi derslerde"
##    ..@ label : chr "Dersin basinda, ogretmenimiz daha onceki dersin kisa bir ozetini yapar."
##  $ ST102Q04TA            : hvn_lbll [1:6890]  2,  2,  3,  3,  2,  3,  1,  2,  1,  2,  1,  2,  4, ...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Her ders" "Derslerin cogunda" "cogunlukla test dili" "Bazi derslerde"
##    ..@ label : chr "ogretmenimiz ne ogrenmemiz gerektigini soyler."
##  $ ST211Q01HA            : hvn_lbll [1:6890] 2, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 3, 1, 3, 3, 3, 2, 4...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Kesinlikle katilmiyorum" "Katilmiyorum" "Katiliyorum" "Kesinlikle katiliyorum"
##    ..@ label : chr "İslediginiz son iki Turkce dersini dusununuz:ogretmen, derste daha iyi seyler yapabilecegim konusunda kendi yet"| __truncated__
##  $ ST211Q02HA            : hvn_lbll [1:6890] 3, 2, 2, 2, 2, 3, 2, 3, 1, 1, 1, 3, 1, 2, 2, 3, 3, 4...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Kesinlikle katilmiyorum" "Katilmiyorum" "Katiliyorum" "Kesinlikle katiliyorum"
##    ..@ label : chr "İslediginiz son iki Turkce dersini dusununuz:ogretmen, bir seylerin nasil yapilacagi ile ilgili benim goruslerimi dinledi"
##  $ ST211Q03HA            : hvn_lbll [1:6890] 3, 1, 2, 2, 2, 3, 2, 3, 2, 2, 1, 4, 1, 2, 2, 3, 2, 4...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Kesinlikle katilmiyorum" "Katilmiyorum" "Katiliyorum" "Kesinlikle katiliyorum"
##    ..@ label : chr "İslediginiz son iki Turkce dersini dusununuz:ogretmenimin beni anladigini hissettim."
##  $ ST212Q01HA            : hvn_lbll [1:6890]  3,  4,  2,  2,  1,  1,  4,  1,  3,  3,  4,  1,  1, ...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Hic veya hemen hemen hic" "Bazi derslerde" "Derslerin cogunda" "Her derste ya da hemen hemen her derste"
##    ..@ label : chr "ogretmen, dersi sinifin ihtiyaci ve seviyesine gore uyarlar."
##  $ ST212Q02HA            : hvn_lbll [1:6890]  2,  2,  2,  2,  1,  2,  3,  3,  4,  3,  2,  1,  2, ...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Hic veya hemen hemen hic" "Bazi derslerde" "Derslerin cogunda" "Her derste ya da hemen hemen her derste"
##    ..@ label : chr "Bir ogrenci, herhangi bir konuyu veya bir gorevi anlamakta gucluk cektiginde ogretmen bu ogrenciye bireysel ola"| __truncated__
##  $ ST212Q03HA            : hvn_lbll [1:6890]  2,  2,  1,  2,  3,  1,  3,  3,  2,  1,  3,  2,  1, ...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Hic veya hemen hemen hic" "Bazi derslerde" "Derslerin cogunda" "Her derste ya da hemen hemen her derste"
##    ..@ label : chr "ogretmen, bircok ogrencinin anlamadigi konularda dersin anlatim seklini degistirir."
##  $ ST104Q02NA            : hvn_lbll [1:6890]  2,  2,  2,  3,  3,  3,  3,  4,  1,  2,  3,  3,  2, ...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Hic veya hemen hemen hic" "Bazi derslerde" "Derslerin cogunda" "Her derste ya da hemen hemen her derste"
##    ..@ label : chr "ogretmen, derste iyi oldugum ozelliklerim ile ilgili bana geribildirim verir."
##  $ ST104Q03NA            : hvn_lbll [1:6890]  2,  2,  2,  2,  2,  2,  2,  2,  2,  4,  4,  3,  1, ...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Hic veya hemen hemen hic" "Bazi derslerde" "Derslerin cogunda" "Her derste ya da hemen hemen her derste"
##    ..@ label : chr "ogretmen, kendimi hangi alanlarda daha da gelistirebilecegimi soyler."
##  $ ST104Q04NA            : hvn_lbll [1:6890]  2,  3,  2,  3,  4,  3,  2,  3,  2,  4,  4,  4,  1, ...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Hic veya hemen hemen hic" "Bazi derslerde" "Derslerin cogunda" "Her derste ya da hemen hemen her derste"
##    ..@ label : chr "ogretmen, performansimi nasil gelistirebilecegimi soyler."
##  $ ST213Q01HA            : hvn_lbll [1:6890]  2,  1,  2,  2,  1,  2,  3,  2,  3,  2,  1,  1,  1, ...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Kesinlikle katilmiyorum" "Katilmiyorum" "Katiliyorum" "Kesinlikle katiliyorum"
##    ..@ label : chr "İslediginiz son iki Turkce dersini dusununuz:ogretmenimizin bize ders anlatmaktan zevk aldigi belli oluyordu."
##  $ ST213Q02HA            : hvn_lbll [1:6890]  2,  1,  3,  2,  1,  2,  1,  2,  3,  2,  1,  1,  1, ...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Kesinlikle katilmiyorum" "Katilmiyorum" "Katiliyorum" "Kesinlikle katiliyorum"
##    ..@ label : chr "İslediginiz son iki Turkce dersini dusununuz:ogretmenimizin coskusu bana ilham verdi."
##  $ ST213Q03HA            : hvn_lbll [1:6890]  2,  2,  3,  2,  1,  3,  3,  3,  3,  2,  1,  1,  2, ...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Kesinlikle katilmiyorum" "Katilmiyorum" "Katiliyorum" "Kesinlikle katiliyorum"
##    ..@ label : chr "İslediginiz son iki Turkce dersini dusununuz:ogretmenimizin bu dersin konusunu begendigi belli oluyordu."
##  $ ST213Q04HA            : hvn_lbll [1:6890]  2,  2,  3,  2,  1,  3,  3,  3,  2,  2,  1,  1,  1, ...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Kesinlikle katilmiyorum" "Katilmiyorum" "Katiliyorum" "Kesinlikle katiliyorum"
##    ..@ label : chr "İslediginiz son iki Turkce dersini dusununuz:ogretmenimiz, dersten zevk aldigini gosterdi."
##  $ ST150Q01IA            : hvn_lbll [1:6890]  3,  1,  2,  4,  1,  2,  1,  1,  3,  2,  1,  2,  3, ...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Bircok kez" "İki ya da uc kez" "Bir kere" "Her derste ya da hemen hemen her derste"
##    ..@ label : chr "Gecen ay boyunca kac kere: sema ve harita iceren metinler"
##  $ ST150Q02IA            : hvn_lbll [1:6890]  3,  1,  1,  4,  1,  2,  1,  1,  3,  2,  1,  2,  2, ...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Bircok kez" "İki ya da uc kez" "Bir kere" "Her derste ya da hemen hemen her derste"
##    ..@ label : chr "Gecen ay boyunca kac kere: oykuleyici metinler (roman, kisa hikaye gibi)"
##  $ ST150Q03IA            : hvn_lbll [1:6890]  3,  1,  1,  4,  4,  3,  2,  1,  3,  1,  2,  2,  4, ...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Bircok kez" "İki ya da uc kez" "Bir kere" "Her derste ya da hemen hemen her derste"
##    ..@ label : chr "Gecen ay boyunca kac kere: Tablo ya da grafik iceren metinler"
##  $ ST150Q04HA            : hvn_lbll [1:6890]  4,  4,  2,  4,  1,  3,  1,  2,  4,  4,  2,  2,  4, ...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Bircok kez" "İki ya da uc kez" "Bir kere" "Her derste ya da hemen hemen her derste"
##    ..@ label : chr "Gecen ay boyunca kac kere: İcerisinde link adresi bulunan dijital metinler"
##  $ ST152Q05IA            : hvn_lbll [1:6890]  2,  3,  2,  2,  4,  2,  2,  3,  2,  4,  4,  1,  1, ...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Hic ya da hemen hemen hic" "Bazi derslerde " "Derslerin cogunda" "Her derste"
##    ..@ label : chr "ogretmen, ogrencileri metinle ilgili goruslerini aciklamalari icin tesvik eder."
##  $ ST152Q06IA            : hvn_lbll [1:6890]  1,  4,  2,  2,  3,  2,  3,  3,  2,  2,  2,  1,  1, ...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Hic ya da hemen hemen hic" "Bazi derslerde " "Derslerin cogunda" "Her derste"
##    ..@ label : chr "ogretmen, ogrencilerin yasantilari ile okuduklari hikâyeler arasinda baglanti kurmalarina yardimci olur."
##  $ ST152Q07IA            : hvn_lbll [1:6890]  2,  3,  2,  2,  2,  2,  4,  3,  3,  3,  3,  1,  1, ...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Hic ya da hemen hemen hic" "Bazi derslerde " "Derslerin cogunda" "Her derste"
##    ..@ label : chr "ogretmen metinlerdeki bilgileri, ogrencilerin onceki bilgilerine nasil dayandiracaklarini ogrencilere gosterir."
##  $ ST152Q08IA            : hvn_lbll [1:6890]  2,  4,  2,  2,  3,  2,  3,  1,  2,  4,  4,  1,  1, ...
##    ..@ labels: Named num [1:4] 1 2 3 4
##    .. ..- attr(*, "names")= chr [1:4] "Hic ya da hemen hemen hic" "Bazi derslerde " "Derslerin cogunda" "Her derste"
##    ..@ label : chr "ogretmen, ogrencilerin derse daha aktif katilimini motive eden sorular sorar."
##  $ ST154Q01HA            : hvn_lbll [1:6890] 2, 5, 4, 2, 5, 4, 2, 5, 2, 2, 6, 1, 1, 2, 5, 2, 3, 6...
##    ..@ labels: Named num [1:6] 1 2 3 4 5 6
##    .. ..- attr(*, "names")= chr [1:6] "Bir sayfa ya da daha az" "2 ile 10 sayfa arasinda" "11 ile 50 sayfa arasinda" "51 ile 100 sayfa arasinda" ...
##    ..@ label : chr "Bu ogretim yili boyunca, Turkce dersiniz icin okumak zorunda oldugunuz en uzun metin kac sayfaydi?"
##  $ ST153Q01HA            : hvn_lbll [1:6890] 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Evet" "Hayir"
##    ..@ label : chr "bir kitap ya da bir kitaptan bir bolum okumak durumunda kaldiginizda, ogretmeniniz Kitabin ya da bolumun bir oz"| __truncated__
##  $ ST153Q02HA            : hvn_lbll [1:6890]  2,  1,  2,  1,  2,  1,  2,  1,  1,  1,  1,  2,  2, ...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Evet" "Hayir"
##    ..@ label : chr "bir kitap ya da bir kitaptan bir bolum okumak durumunda kaldiginizda, ogretmeniniz Ana karakterleri listelemek "| __truncated__
##  $ ST153Q03HA            : hvn_lbll [1:6890] 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Evet" "Hayir"
##    ..@ label : chr "bir kitap ya da bir kitaptan bir bolum okumak durumunda kaldiginizda, ogretmeniniz Ayni kitabi ya da bolumu oku"| __truncated__
##  $ ST153Q04HA            : hvn_lbll [1:6890]  2,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  2, ...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Evet" "Hayir"
##    ..@ label : chr "bir kitap ya da bir kitaptan bir bolum okumak durumunda kaldiginizda, ogretmeniniz Kitap ya da bolum hakkinda k"| __truncated__
##  $ ST153Q05HA            : hvn_lbll [1:6890]  2,  1,  1,  1,  1,  2,  1,  1,  1,  1,  1,  2,  2, ...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Evet" "Hayir"
##    ..@ label : chr "bir kitap ya da bir kitaptan bir bolum okumak durumunda kaldiginizda, ogretmeniniz Kitap ya da bolum hakkindaki"| __truncated__
##  $ ST153Q06HA            : hvn_lbll [1:6890]  2,  1,  2,  1,  1,  2,  2,  1,  2,  1,  1,  2,  2, ...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Evet" "Hayir"
##    ..@ label : chr "bir kitap ya da bir kitaptan bir bolum okumak durumunda kaldiginizda, ogretmeniniz Kitabin ya da bolumun icerig"| __truncated__
##  $ ST153Q08HA            : hvn_lbll [1:6890]  2,  1,  2,  1,  1,  1,  1,  2,  2,  1,  1,  2,  2, ...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Evet" "Hayir"
##    ..@ label : chr "bir kitap ya da bir kitaptan bir bolum okumak durumunda kaldiginizda, ogretmeniniz Kitabi, benzer konular hakki"| __truncated__
##  $ ST153Q09HA            : hvn_lbll [1:6890]  1,  2,  2,  1,  2,  1,  1,  2,  1,  1,  1,  2,  2, ...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Evet" "Hayir"
##    ..@ label : chr "bir kitap ya da bir kitaptan bir bolum okumak durumunda kaldiginizda, ogretmeniniz Hoslandiginiz ya da hoslanma"| __truncated__
##  $ ST153Q10HA            : hvn_lbll [1:6890]  2,  2,  2,  1,  2,  1,  2,  2, NA,  2,  1,  2,  2, ...
##    ..@ labels: Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Evet" "Hayir"
##    ..@ label : chr "bir kitap ya da bir kitaptan bir bolum okumak durumunda kaldiginizda, ogretmeniniz Ne okudugunuzla ilgili bir m"| __truncated__
##   [list output truncated]

select() fonksiyonu -I

673 sutunla calismayacaksaniz, problem durumunuza uygun sutunlari secebilirsiniz. Fonksiyon icinde degiskenler tek tek virgul , ile ayrilarak secim yapilabilir. Bu islem temel pakette data.frame() fonksiyonu ile kullanildiginda degisken adlari tırnak icinde yazilmalidir.

Bu paketler daha az kodlama yuku saglar.

select(veri seti, degisken adi, degisken adi,..)
select(PISA_OGR_2018, OKULID, OGRENCIID, CINSIYET ,SES)
## # A tibble: 6,890 x 4
##      OKULID OGRENCIID   CINSIYET     SES
##       <dbl>     <dbl> <hvn_lbll>   <dbl>
##  1 79200001  79200768          2 -2.45  
##  2 79200001  79201064          2 -2.10  
##  3 79200001  79201118          1 -2.27  
##  4 79200001  79201275          2  0.0324
##  5 79200001  79201481          2 -0.0674
##  6 79200001  79201556          2  0.398 
##  7 79200001  79201652          1 -0.866 
##  8 79200001  79202033          2 -0.158 
##  9 79200001  79202179          1 -0.626 
## 10 79200001  79202278          2 -2.28  
## # ... with 6,880 more rows

Ayni islem c() fonksiyonu icinde de yapilabilir.

select(PISA_OGR_2018, c(OKULID, OGRENCIID, CINSIYET ,SES))
## # A tibble: 6,890 x 4
##      OKULID OGRENCIID   CINSIYET     SES
##       <dbl>     <dbl> <hvn_lbll>   <dbl>
##  1 79200001  79200768          2 -2.45  
##  2 79200001  79201064          2 -2.10  
##  3 79200001  79201118          1 -2.27  
##  4 79200001  79201275          2  0.0324
##  5 79200001  79201481          2 -0.0674
##  6 79200001  79201556          2  0.398 
##  7 79200001  79201652          1 -0.866 
##  8 79200001  79202033          2 -0.158 
##  9 79200001  79202179          1 -0.626 
## 10 79200001  79202278          2 -2.28  
## # ... with 6,880 more rows

select() fonksiyonu - II

dplyr() paketindeki tum fonksiyonlar daha az degisken olusturmak amaciyla pipe operatoru %>% ile kullanilabilir. %>% operator sik kullanilan bir operatordur, kisa yolu: Ctrl+Shift+M

Diger kisa yollar icin adresini inceleyebilirsiniz.

Ayrıca Rstudio tools menusunu de incelenebilir.

Operator kullanimi

veri seti %>% select(degisken adi, degisken adi,..)

PISA_OGR_2018 %>% select(OKULID, OGRENCIID, CINSIYET ,SES)
## # A tibble: 6,890 x 4
##      OKULID OGRENCIID   CINSIYET     SES
##       <dbl>     <dbl> <hvn_lbll>   <dbl>
##  1 79200001  79200768          2 -2.45  
##  2 79200001  79201064          2 -2.10  
##  3 79200001  79201118          1 -2.27  
##  4 79200001  79201275          2  0.0324
##  5 79200001  79201481          2 -0.0674
##  6 79200001  79201556          2  0.398 
##  7 79200001  79201652          1 -0.866 
##  8 79200001  79202033          2 -0.158 
##  9 79200001  79202179          1 -0.626 
## 10 79200001  79202278          2 -2.28  
## # ... with 6,880 more rows

select() fonksiyonu - II

select() fonksiyonu belirli bir araliktaki degiskenler iki nokta : opertoru ile secilebilir. Ornegin okumadan alinan zevke iliskin maddeler asagidaki sekilde secilebilir.

PISA_OGR_2018 %>% select(ST097Q01TA:ST097Q05TA)
## # A tibble: 6,890 x 5
##    ST097Q01TA ST097Q02TA ST097Q03TA ST097Q04TA ST097Q05TA
##    <hvn_lbll> <hvn_lbll> <hvn_lbll> <hvn_lbll> <hvn_lbll>
##  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
## # ... with 6,880 more rows

select() fonksiyonu - III

select() fonksiyonu belirli bir araliktaki degiskenler iki nokta : opertoru ile secilirken, bu aralikta dahil edilmek istenmeyen degiskenler kisa cizgi - operatoru ile haric tutulabilir.

PISA_OGR_2018 %>% select(OKULID:SINIF,-KITAPCIK)
## # A tibble: 6,890 x 4
##      OKULID OGRENCIID OKUL_TUR        SINIF
##       <dbl>     <dbl> <hvn_lbll> <hvn_lbll>
##  1 79200001  79200768 TUR0112            10
##  2 79200001  79201064 TUR0112            10
##  3 79200001  79201118 TUR0112            10
##  4 79200001  79201275 TUR0112             9
##  5 79200001  79201481 TUR0112             9
##  6 79200001  79201556 TUR0112            10
##  7 79200001  79201652 TUR0112            10
##  8 79200001  79202033 TUR0112            10
##  9 79200001  79202179 TUR0112            10
## 10 79200001  79202278 TUR0112            10
## # ... with 6,880 more rows

select() fonksiyonu - starts_with()

Sadece select() fonksiyonu icinde calisan birtakim fonksiyonlar degisken secim isini kolaylastirir.

“PISA_OGR_2018” nesnesinden “ST097” ile baslayan degiskenlerin secilmesi

select(PISA_OGR_2018, starts_with("ST097"))
## # A tibble: 6,890 x 5
##    ST097Q01TA ST097Q02TA ST097Q03TA ST097Q04TA ST097Q05TA
##    <hvn_lbll> <hvn_lbll> <hvn_lbll> <hvn_lbll> <hvn_lbll>
##  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
## # ... with 6,880 more rows

select() fonksiyonu - ends_with()

“PISA_OGR_2018” nesnesinden “NA” ile biten degiskenlerin secilmesi

select(PISA_OGR_2018, ends_with("NA"))
## # A tibble: 6,890 x 48
##    ST104Q02NA ST104Q03NA ST104Q04NA ST016Q01NA ST123Q02NA ST123Q03NA ST123Q04NA
##    <hvn_lbll> <hvn_lbll> <hvn_lbll>      <dbl> <hvn_lbll> <hvn_lbll> <hvn_lbll>
##  1          2          2          2         NA          4          4          4
##  2          2          2          3          7          4          3          1
##  3          2          2          2          4          3          3          3
##  4          3          2          3          3          3         NA          3
##  5          3          2          4          1          1          1          1
##  6          3          2          3          4          3          3          3
##  7          3          2          2          1          4          4          3
##  8          4          2          3          1          4          1          2
##  9          1          2          2          0          4          4          4
## 10          2          4          4          0          3          4          3
## # ... with 6,880 more rows, and 41 more variables: ST060Q01NA <dbl>,
## #   ST061Q01NA <dbl>, ST038Q03NA <hvn_lbll>, ST038Q04NA <hvn_lbll>,
## #   ST038Q05NA <hvn_lbll>, ST038Q06NA <hvn_lbll>, ST038Q07NA <hvn_lbll>,
## #   ST038Q08NA <hvn_lbll>, IC009Q05NA <hvn_lbll>, IC009Q06NA <hvn_lbll>,
## #   IC009Q07NA <hvn_lbll>, IC009Q10NA <hvn_lbll>, IC009Q11NA <hvn_lbll>,
## #   IC008Q07NA <hvn_lbll>, IC008Q13NA <hvn_lbll>, IC010Q02NA <hvn_lbll>,
## #   IC010Q05NA <hvn_lbll>, IC010Q06NA <hvn_lbll>, IC010Q09NA <hvn_lbll>, ...

select() fonksiyonu - contains()

“PISA_OGR_2018” nesnesinden icinde “OKUMA” gecen degiskenlerin secilmesi

select(PISA_OGR_2018,contains("OKUMA"))
## # A tibble: 6,890 x 12
##    OKUMA_BAGLILIGI OKUMA_ZEVK ODOKUMA1 ODOKUMA2 ODOKUMA3 ODOKUMA4 ODOKUMA5
##              <dbl>      <dbl>    <dbl>    <dbl>    <dbl>    <dbl>    <dbl>
##  1         -0.922     -0.289      376.     418.     421.     414.     434.
##  2          1.07       0.604      512.     473.     564.     485.     500.
##  3         -0.62       0.638      396.     414.     423.     452.     392.
##  4         -0.62      -1.15       393.     429.     365.     383.     379.
##  5          0.378      0.667      552.     570.     563.     531.     532.
##  6         -0.62       0.357      441.     416.     407.     437.     473.
##  7          0.646     -0.0886     411.     422.     426.     385.     461.
##  8         -0.0104     0.931      551.     552.     509.     491.     538.
##  9         -0.234      1.22       542.     534.     501.     523.     497.
## 10          0.759      0.425      434.     470.     538.     495.     502.
## # ... with 6,880 more rows, and 5 more variables: ODOKUMA6 <dbl>,
## #   ODOKUMA7 <dbl>, ODOKUMA8 <dbl>, ODOKUMA9 <dbl>, ODOKUMA10 <dbl>

select() fonksiyonu - matches()

“PISA_OGR_2018” nesnesinden icinde “02” gecen degiskenlerin secilmesi

select(PISA_OGR_2018,matches("02"))
## # A tibble: 6,890 x 59
##    ST097Q02TA ST100Q02TA ST102Q01TA ST102Q02TA ST102Q03TA ST102Q04TA ST211Q02HA
##    <hvn_lbll> <hvn_lbll> <hvn_lbll> <hvn_lbll> <hvn_lbll> <hvn_lbll> <hvn_lbll>
##  1          2          2          2          2          3          2          3
##  2          2          3          2          3          2          2          2
##  3          3          2          2          2          3          3          2
##  4          2          2          2          3          4          3          2
##  5          3          3          3          1          2          2          2
##  6          3          3          3          3          3          3          3
##  7         NA          1          3          3          1          1          2
##  8          3          2          3          1          4          2          3
##  9          4          1          2          1          3          1          1
## 10          4          1          3          1          1          2          1
## # ... with 6,880 more rows, and 52 more variables: ST212Q02HA <hvn_lbll>,
## #   ST104Q02NA <hvn_lbll>, ST213Q02HA <hvn_lbll>, ST150Q02IA <hvn_lbll>,
## #   ST153Q02HA <hvn_lbll>, ST158Q02HA <hvn_lbll>, ST160Q02IA <hvn_lbll>,
## #   ST167Q02IA <hvn_lbll>, ST176Q02IA <hvn_lbll>, ST161Q02HA <hvn_lbll>,
## #   ST163Q02HA <hvn_lbll>, ST164Q02IA <hvn_lbll>, ST165Q02IA <hvn_lbll>,
## #   ST166Q02HA <hvn_lbll>, ST225Q02HA <hvn_lbll>, ST181Q02HA <hvn_lbll>,
## #   ST183Q02HA <hvn_lbll>, ST185Q02HA <hvn_lbll>, ST186Q02HA <hvn_lbll>, ...

select() fonksiyonu - num_range()

“PISA_OGR_2018” nesnesinden ardisik ilerleyen isimlerin secimi

select(PISA_OGR_2018,num_range("AGIRLIKLANDIRMA",1:5))
## # A tibble: 6,890 x 5
##    AGIRLIKLANDIRMA1 AGIRLIKLANDIRMA2 AGIRLIKLANDIRMA3 AGIRLIKLANDIRMA4
##               <dbl>            <dbl>            <dbl>            <dbl>
##  1             71.0             213.             71.0             213.
##  2             71.0             213.             71.0             213.
##  3             71.0             213.             71.0             213.
##  4             71.0             213.             71.0             213.
##  5             71.0             213.             71.0             213.
##  6             71.0             213.             71.0             213.
##  7             71.0             213.             71.0             213.
##  8             71.0             213.             71.0             213.
##  9             71.0             213.             71.0             213.
## 10             71.0             213.             71.0             213.
## # ... with 6,880 more rows, and 1 more variable: AGIRLIKLANDIRMA5 <dbl>

select() fonksiyonu - coklu secim

“PISA_OGR_2018” nesnesinden icinden 198 degiskenin secilmesi

select(PISA_OGR_2018,contains("OKUMA") | matches("2"))
## # A tibble: 6,890 x 198
##    OKUMA_BAGLILIGI OKUMA_ZEVK ODOKUMA1 ODOKUMA2 ODOKUMA3 ODOKUMA4 ODOKUMA5
##              <dbl>      <dbl>    <dbl>    <dbl>    <dbl>    <dbl>    <dbl>
##  1         -0.922     -0.289      376.     418.     421.     414.     434.
##  2          1.07       0.604      512.     473.     564.     485.     500.
##  3         -0.62       0.638      396.     414.     423.     452.     392.
##  4         -0.62      -1.15       393.     429.     365.     383.     379.
##  5          0.378      0.667      552.     570.     563.     531.     532.
##  6         -0.62       0.357      441.     416.     407.     437.     473.
##  7          0.646     -0.0886     411.     422.     426.     385.     461.
##  8         -0.0104     0.931      551.     552.     509.     491.     538.
##  9         -0.234      1.22       542.     534.     501.     523.     497.
## 10          0.759      0.425      434.     470.     538.     495.     502.
## # ... with 6,880 more rows, and 191 more variables: ODOKUMA6 <dbl>,
## #   ODOKUMA7 <dbl>, ODOKUMA8 <dbl>, ODOKUMA9 <dbl>, ODOKUMA10 <dbl>,
## #   ST097Q02TA <hvn_lbll>, ST100Q02TA <hvn_lbll>, ST102Q01TA <hvn_lbll>,
## #   ST102Q02TA <hvn_lbll>, ST102Q03TA <hvn_lbll>, ST102Q04TA <hvn_lbll>,
## #   ST211Q01HA <hvn_lbll>, ST211Q02HA <hvn_lbll>, ST211Q03HA <hvn_lbll>,
## #   ST212Q01HA <hvn_lbll>, ST212Q02HA <hvn_lbll>, ST212Q03HA <hvn_lbll>,
## #   ST104Q02NA <hvn_lbll>, ST213Q01HA <hvn_lbll>, ST213Q02HA <hvn_lbll>, ...

select() fonksiyonu - coklu secim

“PISA_OGR_2018” nesnesinin icinde farkli fonksiyonlari ayni anda mantiksal operatorlerle kullanarak da secim yapabilirsiniz.

select(PISA_OGR_2018,contains("OKUMA") & matches("2"))
## # A tibble: 6,890 x 1
##    ODOKUMA2
##       <dbl>
##  1     418.
##  2     473.
##  3     414.
##  4     429.
##  5     570.
##  6     416.
##  7     422.
##  8     552.
##  9     534.
## 10     470.
## # ... with 6,880 more rows

select() fonksiyonu - coklu secim

“PISA_OGR_2018” nesnesinden 602 degiskenin secilmesi

select(PISA_OGR_2018,-contains("OKUMA"),-matches("02"))
## # A tibble: 6,890 x 602
##      OKULID OGRENCIID OKUL_TUR     KITAPCIK      SINIF DOGUMAY CINSIYET ANNE_OKUL
##       <dbl>     <dbl> <hvn_lbll> <hvn_lbll> <hvn_lbll> <hvn_l> <hvn_lb> <hvn_lbl>
##  1 79200001  79200768 TUR0112            20         10      10        2         3
##  2 79200001  79201064 TUR0112             5         10       2        2         3
##  3 79200001  79201118 TUR0112            16         10       1        1         4
##  4 79200001  79201275 TUR0112            21          9       9        2         1
##  5 79200001  79201481 TUR0112             1          9       9        2         1
##  6 79200001  79201556 TUR0112            17         10       8        2         1
##  7 79200001  79201652 TUR0112             3         10       7        1         3
##  8 79200001  79202033 TUR0112            19         10       2        2         2
##  9 79200001  79202179 TUR0112             7         10       2        1         4
## 10 79200001  79202278 TUR0112             9         10       4        2         5
## # ... with 6,880 more rows, and 594 more variables: ANNE_LISANSUSTU <hvn_lbll>,
## #   ANNE_LISANS <hvn_lbll>, ANNE_ONLISANS <hvn_lbll>, BABA_OKUL <hvn_lbll>,
## #   BABA_LISANSUSTU <hvn_lbll>, BABA_LISANS <hvn_lbll>,
## #   BABA_ONLISANS <hvn_lbll>, OLANAK_MASA <hvn_lbll>, OLANAK_ODA <hvn_lbll>,
## #   OLANAK_SESSIZYER <hvn_lbll>, OLANAK_BILGISAYAR <hvn_lbll>,
## #   OLANAK_YAZILIM <hvn_lbll>, OLANAK_INTERNET <hvn_lbll>,
## #   OLANAK_KLASIKKITAP <hvn_lbll>, OLANAK_SIIRKITAP <hvn_lbll>, ...

select() fonksiyonu

Siz de tidyselect paketini inceleyiniz.

library(tidyselect)
## 
## Attaching package: 'tidyselect'
## The following object is masked from 'package:expss':
## 
##     contains

mutate() fonksiyonu

mutate() fonksiyonu ile veri setine yeni degisken ekleyebilirsiniz.

transmutate() fonksiyonu ile veri setine yeni degisken eklenirken, eski degisken/ler veri setiden cikarilir.

Okumadan zevk alma maddelerinden bir veri seti olusturup, bu veri setine toplam puan ekleme

zevk  <- select(PISA_OGR_2018, starts_with("ST097")) 
zevk  <- expss::drop_var_labs(zevk)
zevk %>% mutate(toplam =ST097Q01TA+ST097Q02TA+ST097Q03TA+ST097Q04TA+ ST097Q05TA)
## # A tibble: 6,890 x 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
##  4          2          2          3          1          1      9
##  5          3          3          4          3          1     14
##  6          3          3          2          2          3     13
##  7          3         NA          3          3          4     NA
##  8          3          3          2          1          2     11
##  9          3          4          3          4          3     17
## 10          3          4          2          1          1     11
## # ... with 6,880 more rows

mutate() fonksiyonu

zevk %>% mutate(toplam=rowSums(select(., ST097Q01TA:ST097Q05TA)))
## # A tibble: 6,890 x 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
##  4          2          2          3          1          1      9
##  5          3          3          4          3          1     14
##  6          3          3          2          2          3     13
##  7          3         NA          3          3          4     NA
##  8          3          3          2          1          2     11
##  9          3          4          3          4          3     17
## 10          3          4          2          1          1     11
## # ... with 6,880 more rows

mutate() fonksiyonu

Yeni eklenecek yeri .before ya da .after argumanlari ile duzenleyebilirsiniz.

zevk %>% mutate(toplam=rowSums(select(., ST097Q01TA:ST097Q05TA)),.before= ST097Q01TA)
## # A tibble: 6,890 x 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
##  4      9          2          2          3          1          1
##  5     14          3          3          4          3          1
##  6     13          3          3          2          2          3
##  7     NA          3         NA          3          3          4
##  8     11          3          3          2          1          2
##  9     17          3          4          3          4          3
## 10     11          3          4          2          1          1
## # ... with 6,880 more rows

transmute() fonksiyonu

transmute() fonksiyonu kullanilarak yeni degisken olusturuldugunda, eski degiskenler veri setinden cikarilir.

zevk %>% transmute(toplam=rowSums(select(., ST097Q01TA:ST097Q05TA)))
## # A tibble: 6,890 x 1
##    toplam
##     <dbl>
##  1      6
##  2     14
##  3     14
##  4      9
##  5     14
##  6     13
##  7     NA
##  8     11
##  9     17
## 10     11
## # ... with 6,880 more rows

mutate() fonksiyonu

Fonksiyonda uretilen ilk degisken kullanilarak da yeni degisken uretilebilir.

ozyeterlik <- PISA_OGR_2018 %>% expss::drop_var_labs() %>% 
  select(ST196Q02HA:ST196Q07HA) 

ozyeterlik%>% 
  rowwise() %>%
  mutate(toplam = sum(across()))%>% 
  mutate(toplam_kare=toplam*toplam)
## # A tibble: 6,890 x 8
## # Rowwise: 
##    ST196Q02HA ST196Q03HA ST196Q04HA ST196Q05HA ST196Q06HA ST196Q07HA toplam
##         <dbl>      <dbl>      <dbl>      <dbl>      <dbl>      <dbl>  <dbl>
##  1          3          3          4          4          3          4     21
##  2          3          3          4          4          3          2     19
##  3          1          2          3          2          2          2     12
##  4          1          1          1          1          1          1      6
##  5          1          4          4          1          4          4     18
##  6          1          1          1          1          1          1      6
##  7          3          3          3          4          4          4     21
##  8          3          2          4          2          3          3     17
##  9          3          1          4          4          2          4     18
## 10          3          3          1          4          4          4     19
## # ... with 6,880 more rows, and 1 more variable: toplam_kare <dbl>

c_across() & across()

dplyr paketinin yeni guncellemelerine adresinden ulasabilirsiniz.

Ozellikle colwise() ve rowwise() fonksiyonlarinin kullanimini inceleyeniz.

vignette("colwise") 
vignette("rowwise") 

filter() fonksiyonu

satir bazinda veri secim islemi yapmak amaciyla kullanilir.

Oncelikle filter() fonksiyonunu kullanmak uzere bir veri seti olusturalim.

miniPISA <-  PISA_OGR_2018 %>%   select(OGRENCIID,
                           OKUL_TUR,
                           CINSIYET,SES,Gocmenlik,
                           Anne_Egitim,Baba_Egitim,
                           OKUMA_ZEVK,OK_YETERLIK,ODOKUMA1)  %>%
                           expss::drop_var_labs()

"miniPISA" nesnesinden sosyoekonomik duzeyi 3’un ustunde olan gozlemlerin secilmesi

      filter(miniPISA, SES >3)
## # A tibble: 0 x 10
## # ... with 10 variables: OGRENCIID <dbl>, OKUL_TUR <chr>, CINSIYET <dbl>,
## #   SES <dbl>, Gocmenlik <dbl>, Anne_Egitim <dbl>, Baba_Egitim <dbl>,
## #   OKUMA_ZEVK <dbl>, OK_YETERLIK <dbl>, ODOKUMA1 <dbl>

"miniPISA" nesnesinden sosyoekonomik duzeyi 2’in ustunde olan gozlemlerin secilmesi

      filter(miniPISA, SES >2)
## # A tibble: 4 x 10
##   OGRENCIID OKUL_TUR CINSIYET   SES Gocmenlik Anne_Egitim Baba_Egitim OKUMA_ZEVK
##       <dbl> <chr>       <dbl> <dbl>     <dbl>       <dbl>       <dbl>      <dbl>
## 1  79203361 TUR0115         2  2.28         1           5           6     NA    
## 2  79201409 TUR0110         2  2.76         1           6           6     -0.104
## 3  79206271 TUR0111         2  2.18         1           6           6     -1.06 
## 4  79207242 TUR0116         2  2.62         2           6           6      0.137
## # ... with 2 more variables: OK_YETERLIK <dbl>, ODOKUMA1 <dbl>

filter() fonksiyonu

“miniPISA” nesnesinden anne egitim duzeyi, baba egitim duzeyinden yuksek olanlarin secilmesi

filter(miniPISA,  Anne_Egitim > Baba_Egitim)
## # A tibble: 1,230 x 10
##    OGRENCIID OKUL_TUR CINSIYET    SES Gocmenlik Anne_Egitim Baba_Egitim
##        <dbl> <chr>       <dbl>  <dbl>     <dbl>       <dbl>       <dbl>
##  1  79202360 TUR0112         1 -2.24          1           4           1
##  2  79203553 TUR0112         1  0.619         1           6           5
##  3  79203847 TUR0112         2 -1.82          1           4           1
##  4  79204714 TUR0112         2 -1.13          1           6           4
##  5  79205282 TUR0112         1 -0.546         1           4           2
##  6  79206476 TUR0112         2 -1.70          1           4           2
##  7  79206936 TUR0112         1 -1.24          1           4           2
##  8  79206987 TUR0112         1 -1.40          1           5           4
##  9  79200156 TUR0231         1 -2.17          1           2           1
## 10  79200299 TUR0231         2 -1.84          1           3           2
## # ... with 1,220 more rows, and 3 more variables: OKUMA_ZEVK <dbl>,
## #   OK_YETERLIK <dbl>, ODOKUMA1 <dbl>

filter() fonksiyonu

“miniPISA” nesnesinden anne egitim duzeyi, baba egitim duzeyinden yuksek olanlarin ve OK_YETERLIK degiskeninde eksik verisi olmayanlarin secilmesi

filter(miniPISA, Anne_Egitim > Baba_Egitim, !is.na(OK_YETERLIK ))
## # A tibble: 1,205 x 10
##    OGRENCIID OKUL_TUR CINSIYET    SES Gocmenlik Anne_Egitim Baba_Egitim
##        <dbl> <chr>       <dbl>  <dbl>     <dbl>       <dbl>       <dbl>
##  1  79202360 TUR0112         1 -2.24          1           4           1
##  2  79203553 TUR0112         1  0.619         1           6           5
##  3  79203847 TUR0112         2 -1.82          1           4           1
##  4  79204714 TUR0112         2 -1.13          1           6           4
##  5  79205282 TUR0112         1 -0.546         1           4           2
##  6  79206476 TUR0112         2 -1.70          1           4           2
##  7  79206936 TUR0112         1 -1.24          1           4           2
##  8  79206987 TUR0112         1 -1.40          1           5           4
##  9  79200156 TUR0231         1 -2.17          1           2           1
## 10  79200971 TUR0231         2  1.09          1           6           5
## # ... with 1,195 more rows, and 3 more variables: OKUMA_ZEVK <dbl>,
## #   OK_YETERLIK <dbl>, ODOKUMA1 <dbl>

filter() fonksiyonu

"miniPISA" nesnesinden anne egitim duzeyi, baba egitim duzeyinden yuksek olanlarin ve OK_YETERLIK degiskeninde eksik verisi olmayanlarin ve sosyoekonomik duzeyi ortalamanin ustunde olanlarin secilmesi

     filter(miniPISA, Anne_Egitim > Baba_Egitim, !is.na(OK_YETERLIK ), SES >0)
## # A tibble: 191 x 10
##    OGRENCIID OKUL_TUR CINSIYET   SES Gocmenlik Anne_Egitim Baba_Egitim
##        <dbl> <chr>       <dbl> <dbl>     <dbl>       <dbl>       <dbl>
##  1  79203553 TUR0112         1 0.619         1           6           5
##  2  79200971 TUR0231         2 1.09          1           6           5
##  3  79204424 TUR0305         2 0.125         1           6           3
##  4  79206068 TUR0305         1 1.05          1           6           5
##  5  79207112 TUR0305         2 0.433         1           6           5
##  6  79200895 TUR0233         1 0.496         1           6           3
##  7  79201266 TUR0109         2 0.569         1           6           4
##  8  79202699 TUR0109         2 1.37          1           6           5
##  9  79203914 TUR0109         1 0.625         2           6           5
## 10  79204870 TUR0109         2 0.243         1           6           5
## # ... with 181 more rows, and 3 more variables: OKUMA_ZEVK <dbl>,
## #   OK_YETERLIK <dbl>, ODOKUMA1 <dbl>

arrange() fonksiyonu

arrange() veri setini satirlara gore tekrar siralar. Bu siralamayi alfabetik yapar. desc() fonksiyonu ya da - operotoru ile islem tersine de donsurulebilir.

"miniPISA" nesnesindeki gozlemlerin SES puanlarina gore buyukten kucuge siralanmasi

# - operetoru
arrange(miniPISA, -SES)
## # A tibble: 6,890 x 10
##    OGRENCIID OKUL_TUR CINSIYET   SES Gocmenlik Anne_Egitim Baba_Egitim
##        <dbl> <chr>       <dbl> <dbl>     <dbl>       <dbl>       <dbl>
##  1  79201409 TUR0110         2  2.76         1           6           6
##  2  79207242 TUR0116         2  2.62         2           6           6
##  3  79203361 TUR0115         2  2.28         1           5           6
##  4  79206271 TUR0111         2  2.18         1           6           6
##  5  79203677 TUR0304         1  1.99         1           6           6
##  6  79200191 TUR0110         1  1.92         1           6           6
##  7  79204883 TUR0114         2  1.90         1           6           6
##  8  79206259 TUR0110         1  1.90         1           6           6
##  9  79204227 TUR0110         2  1.86         1           6           6
## 10  79203397 TUR0110         2  1.86         1           6           6
## # ... with 6,880 more rows, and 3 more variables: OKUMA_ZEVK <dbl>,
## #   OK_YETERLIK <dbl>, ODOKUMA1 <dbl>
# desc()  fonksiyonu
arrange(miniPISA, desc(SES))
## # A tibble: 6,890 x 10
##    OGRENCIID OKUL_TUR CINSIYET   SES Gocmenlik Anne_Egitim Baba_Egitim
##        <dbl> <chr>       <dbl> <dbl>     <dbl>       <dbl>       <dbl>
##  1  79201409 TUR0110         2  2.76         1           6           6
##  2  79207242 TUR0116         2  2.62         2           6           6
##  3  79203361 TUR0115         2  2.28         1           5           6
##  4  79206271 TUR0111         2  2.18         1           6           6
##  5  79203677 TUR0304         1  1.99         1           6           6
##  6  79200191 TUR0110         1  1.92         1           6           6
##  7  79204883 TUR0114         2  1.90         1           6           6
##  8  79206259 TUR0110         1  1.90         1           6           6
##  9  79204227 TUR0110         2  1.86         1           6           6
## 10  79203397 TUR0110         2  1.86         1           6           6
## # ... with 6,880 more rows, and 3 more variables: OKUMA_ZEVK <dbl>,
## #   OK_YETERLIK <dbl>, ODOKUMA1 <dbl>

arrange() fonksiyonu

"miniPISA" nesnesindeki gozlemlerin anne egitim duzeyi ve baba egitim duzeyi toplamina gore kucukten buyuge siralanmasi

arrange(miniPISA,Anne_Egitim + Baba_Egitim)
## # A tibble: 6,890 x 10
##    OGRENCIID OKUL_TUR CINSIYET   SES Gocmenlik Anne_Egitim Baba_Egitim
##        <dbl> <chr>       <dbl> <dbl>     <dbl>       <dbl>       <dbl>
##  1  79203057 TUR0231         2 -2.71         1           0           0
##  2  79201246 TUR0114         1 -3.31         1           0           0
##  3  79206034 TUR0114         2 -3.21         1           0           0
##  4  79206038 TUR0114         2 -2.76         1           0           0
##  5  79203957 TUR0231         1 -3.14         1           0           0
##  6  79205430 TUR0231         1 -2.52         1           0           0
##  7  79200013 TUR0111         2 -2.86         1           0           0
##  8  79201946 TUR0230         1 -3.25         1           0           0
##  9  79200998 TUR0115         1 -3.33         1           0           0
## 10  79201589 TUR0115         1 -3.22         1           0           0
## # ... with 6,880 more rows, and 3 more variables: OKUMA_ZEVK <dbl>,
## #   OK_YETERLIK <dbl>, ODOKUMA1 <dbl>

summarise() fonksiyonu

Tek satirlik veri setini ozetleyerek yeni bir veri seti olusturan fonksiyondur.

summarise() fonksiyonu

"miniPISA" nesnesindeki gozlemlerin “OK_YETERLIK” puanlarina iliskin ozet istatistiklerin elde edilmesi

summarise(miniPISA, n(),mean(OK_YETERLIK)) #eksik veri
## # A tibble: 1 x 2
##   `n()` `mean(OK_YETERLIK)`
##   <int>               <dbl>
## 1  6890                  NA

summarise() fonksiyonu icinde isimlendirme yapmazsaniz, olusan veri setinde isimlendirme fonksiyon adlari olacaktir.

summarise() fonksiyonu

“miniPISA” nesnesindeki gozlemlerin eksik gozlemler cikarildiktan sonra sayisal sutunlara iliskin ozet istatistikler

miniPISA %>% 
    filter(complete.cases(.))  %>%  #eksik veri cikarilir
  summarise(across(where(is.numeric),mean))
## # A tibble: 1 x 9
##   OGRENCIID CINSIYET   SES Gocmenlik Anne_Egitim Baba_Egitim OKUMA_ZEVK
##       <dbl>    <dbl> <dbl>     <dbl>       <dbl>       <dbl>      <dbl>
## 1 79203621.     1.50 -1.16      1.01        2.64        3.12      0.692
## # ... with 2 more variables: OK_YETERLIK <dbl>, ODOKUMA1 <dbl>

ayni islemi is.na() fonksiyonunu kullanarak siz de deneyiniz.

summarise() fonksiyonu

"miniPISA" nesnesinde anne ve baba egitim duzeyin lise ve uzeri olan ve sosyo ekonomik duzeyi ortalamanin uzerinde olan ogrencilerin OK_YETERLIK puanlarina iliskin ozet istatistikler

miniPISA %>% 
            filter(complete.cases(.))%>% 
            select(Anne_Egitim,Baba_Egitim,SES,OK_YETERLIK) %>% 
            filter(Anne_Egitim  >=4 & Baba_Egitim  >=4 & SES >1) %>% 
            summarise (N= n(),min  = min(OK_YETERLIK) ,
            max = max  (OK_YETERLIK) ,
            ort = mean(OK_YETERLIK) ,sd = sd(OK_YETERLIK))
## # A tibble: 1 x 5
##       N   min   max   ort    sd
##   <int> <dbl> <dbl> <dbl> <dbl>
## 1   228 -2.44  1.88 0.248  1.07

group_by() fonksiyonu

"miniPISA" nesnesinde anne egitim duzeyinde eksik verisi olmayan ogrencilerin anne egitim duzeyine gore OK_YETERLIK puanlarinin buyukten kucuge siralanmasi

 miniPISA %>% 
  filter(!is.na(Anne_Egitim)) %>% 
  group_by(Anne_Egitim) %>% 
  summarise(N=n(), ort=mean(OK_YETERLIK,na.rm=TRUE)) %>% 
  arrange(-ort)
## # A tibble: 7 x 3
##   Anne_Egitim     N      ort
##         <dbl> <int>    <dbl>
## 1           6   887  0.0890 
## 2           4   675  0.0863 
## 3           5   759  0.0841 
## 4           0   695  0.0546 
## 5           3   575  0.00814
## 6           1  1882 -0.0105 
## 7           2  1362 -0.0247

group_by() fonksiyonu

“miniPISA” nesnesinde 2. nesil gocmen ogrencilerin cinsiyete gore basari puanlarinin ortalamasinin hesaplanmasi

miniPISA %>% filter(Gocmenlik==2) %>% 
  group_by(CINSIYET) %>% 
  summarise(n=n(),ort=mean(ODOKUMA1))
## # A tibble: 2 x 3
##   CINSIYET     n   ort
##      <dbl> <int> <dbl>
## 1        1    17  496.
## 2        2    20  454.

join() fonksiyonlari

join() fonksiyonlari

Ilk olarak fonksiyonlarin nasil calistigini gosteren, veri setleri olusturalim.

cinsiyet1 <- data.frame(ogrenci = c("Mert Kaya", "Zeynep Turan", "Zeynep Inal", "Can Eser"),
                        cinsiyet = c("Erkek", "Kiz", "Kiz", "Erkek"), 
                        stringsAsFactors = F)

cinsiyet2 <- data.frame(ad = c("Mert", "Zeynep", "Zeynep", "Can"), 
                        soyad = c("Kaya","Turan", "Inal", "Eser"), 
                        cinsiyet = c("Erkek", "Kiz", "Kiz", "Erkek"), 
                        stringsAsFactors = F);

kangrubu1 <- data.frame(ogrenci = c("Zeynep Turan", "Zeynep Inal","Can Eser", "Su Sonmez"), 
                        kangrubu = c("A Rh(-)", "0 Rh (+)", "ARh(+)","ABRh(-)"),stringsAsFactors = F)

kangrubu2 <- data.frame(isim = c("Zeynep", "Zeynep", "Can", "Su"),soyad = c("Turan", "Inal", "Eser", "Sonmez"), 
                        kangrubu = c("A Rh(-)", "0 Rh (+)", "A Rh(+)", "AB Rh(-)"),     
                        stringsAsFactors = F)

boy1 <- data.frame(ogrenci = c("Sibel Oztas", "Can Eser", "Zeynep Inal", "Su Sonmez"), 
                   boy =c(158, 165, 157, 152), 
                   stringsAsFactors = F) 

boy2 <- data.frame(ogrenci = c("Mert Kaya", "Can Eser", "Zeynep Turan", "Su Sonmez"), 
                   boy =c(172, 165, 153, 152), 
                   stringsAsFactors = F) 

kilo1 <- data.frame(ogrenci = c("Can Eser", "Mert Kaya", "Sibel Oztas", "Su Sonmez"), 
                    kilo =c(47, 52, 46, 42))

left_join() fonksiyonlari

cinsiyet1 ve kangrubu1 nesnelerinin left_join() fonksiyonu ile ogrenci degiskenine gore birlestirilmesi

cinsiyet1; kangrubu1
##        ogrenci cinsiyet
## 1    Mert Kaya    Erkek
## 2 Zeynep Turan      Kiz
## 3  Zeynep Inal      Kiz
## 4     Can Eser    Erkek
##        ogrenci kangrubu
## 1 Zeynep Turan  A Rh(-)
## 2  Zeynep Inal 0 Rh (+)
## 3     Can Eser   ARh(+)
## 4    Su Sonmez  ABRh(-)
veri1 <- left_join(cinsiyet1, kangrubu1, by = "ogrenci")
veri1
##        ogrenci cinsiyet kangrubu
## 1    Mert Kaya    Erkek     <NA>
## 2 Zeynep Turan      Kiz  A Rh(-)
## 3  Zeynep Inal      Kiz 0 Rh (+)
## 4     Can Eser    Erkek   ARh(+)
left_join(cinsiyet1, kangrubu1)
## Joining, by = "ogrenci"
##        ogrenci cinsiyet kangrubu
## 1    Mert Kaya    Erkek     <NA>
## 2 Zeynep Turan      Kiz  A Rh(-)
## 3  Zeynep Inal      Kiz 0 Rh (+)
## 4     Can Eser    Erkek   ARh(+)

left_join() fonksiyonlari

cinsiyet2 ve kangrubu2 nesnelerinin left_join() fonksiyonu ile ad ve soyad degiskenlerine gore birlestirilmesi

cinsiyet2 ; kangrubu2 
##       ad soyad cinsiyet
## 1   Mert  Kaya    Erkek
## 2 Zeynep Turan      Kiz
## 3 Zeynep  Inal      Kiz
## 4    Can  Eser    Erkek
##     isim  soyad kangrubu
## 1 Zeynep  Turan  A Rh(-)
## 2 Zeynep   Inal 0 Rh (+)
## 3    Can   Eser  A Rh(+)
## 4     Su Sonmez AB Rh(-)
veri2 <- left_join(cinsiyet2, kangrubu2, by = c("ad" = "isim", "soyad"))
veri2
##       ad soyad cinsiyet kangrubu
## 1   Mert  Kaya    Erkek     <NA>
## 2 Zeynep Turan      Kiz  A Rh(-)
## 3 Zeynep  Inal      Kiz 0 Rh (+)
## 4    Can  Eser    Erkek  A Rh(+)

right_join() fonksiyonlari

kangrubu1 ve cinsiyet1 nesnelerinin right_join() fonksiyonu ile ogrenci degiskenine gore birlestirilmesi

cinsiyet1; kangrubu1
##        ogrenci cinsiyet
## 1    Mert Kaya    Erkek
## 2 Zeynep Turan      Kiz
## 3  Zeynep Inal      Kiz
## 4     Can Eser    Erkek
##        ogrenci kangrubu
## 1 Zeynep Turan  A Rh(-)
## 2  Zeynep Inal 0 Rh (+)
## 3     Can Eser   ARh(+)
## 4    Su Sonmez  ABRh(-)
veri3 <- right_join(cinsiyet1, kangrubu1, by = "ogrenci")
veri3
##        ogrenci cinsiyet kangrubu
## 1 Zeynep Turan      Kiz  A Rh(-)
## 2  Zeynep Inal      Kiz 0 Rh (+)
## 3     Can Eser    Erkek   ARh(+)
## 4    Su Sonmez     <NA>  ABRh(-)

right_join() fonksiyonlari

kangrubu1; cinsiyet1
##        ogrenci kangrubu
## 1 Zeynep Turan  A Rh(-)
## 2  Zeynep Inal 0 Rh (+)
## 3     Can Eser   ARh(+)
## 4    Su Sonmez  ABRh(-)
##        ogrenci cinsiyet
## 1    Mert Kaya    Erkek
## 2 Zeynep Turan      Kiz
## 3  Zeynep Inal      Kiz
## 4     Can Eser    Erkek
veri4 <- right_join(kangrubu1, cinsiyet1, by = "ogrenci")
veri4
##        ogrenci kangrubu cinsiyet
## 1 Zeynep Turan  A Rh(-)      Kiz
## 2  Zeynep Inal 0 Rh (+)      Kiz
## 3     Can Eser   ARh(+)    Erkek
## 4    Mert Kaya     <NA>    Erkek

join() fonksiyonlari

veri1 ve veri4 veri setlerinin ayni olup olmadiginin setequal() fonksiyonu ile kontrol edilmesi

setequal(veri1, veri4) 
## [1] TRUE

left_join(df1,df2,by="sutunadi")

right_join(df2,df1,by="sutunadi")

inner_join

boy1 ve kilo1 nesnelerinin inner_join() fonksiyonu ile ogrenci degiskenine gore birlestirilmesi

boy1; kilo1
##       ogrenci boy
## 1 Sibel Oztas 158
## 2    Can Eser 165
## 3 Zeynep Inal 157
## 4   Su Sonmez 152
##       ogrenci kilo
## 1    Can Eser   47
## 2   Mert Kaya   52
## 3 Sibel Oztas   46
## 4   Su Sonmez   42
veri5 <- inner_join(boy1, kilo1, by = "ogrenci")
veri5
##       ogrenci boy kilo
## 1 Sibel Oztas 158   46
## 2    Can Eser 165   47
## 3   Su Sonmez 152   42

full_join

boy1 ve kilo1 nesnelerinin full_join() fonksiyonu ile ogrenci degiskenine gore birlestirilmesi

veri6 <- full_join(boy1, kilo1, by = "ogrenci")
veri6
##       ogrenci boy kilo
## 1 Sibel Oztas 158   46
## 2    Can Eser 165   47
## 3 Zeynep Inal 157   NA
## 4   Su Sonmez 152   42
## 5   Mert Kaya  NA   52

semi_join

boy1 ve kilo1 nesnelerinin semi_join() fonksiyonu ile ogrenci degiskenine gore birlestirilmesi

semi_join(boy1, kilo1, by = "ogrenci")
##       ogrenci boy
## 1 Sibel Oztas 158
## 2    Can Eser 165
## 3   Su Sonmez 152

anti_join

boy1 ve kilo1 nesnelerinin anti_join()fonksiyonu ile ogrenci degiskenine gore birlestirilmesi

anti_join(boy1, kilo1, by = "ogrenci")
##       ogrenci boy
## 1 Zeynep Inal 157

join

join() fonksiyonlari da baglama operatorü,%>%, ile birbirine baglanabilir. ogrenci degiskenine gore birlestirilmesi

full_join(veri1, veri6, by = "ogrenci")
##        ogrenci cinsiyet kangrubu boy kilo
## 1    Mert Kaya    Erkek     <NA>  NA   52
## 2 Zeynep Turan      Kiz  A Rh(-)  NA   NA
## 3  Zeynep Inal      Kiz 0 Rh (+) 157   NA
## 4     Can Eser    Erkek   ARh(+) 165   47
## 5  Sibel Oztas     <NA>     <NA> 158   46
## 6    Su Sonmez     <NA>     <NA> 152   42
veri1 %>% 
  full_join(veri6, by = "ogrenci")
##        ogrenci cinsiyet kangrubu boy kilo
## 1    Mert Kaya    Erkek     <NA>  NA   52
## 2 Zeynep Turan      Kiz  A Rh(-)  NA   NA
## 3  Zeynep Inal      Kiz 0 Rh (+) 157   NA
## 4     Can Eser    Erkek   ARh(+) 165   47
## 5  Sibel Oztas     <NA>     <NA> 158   46
## 6    Su Sonmez     <NA>     <NA> 152   42

join

cinsiyet1 %>%
  left_join(kangrubu1, by = "ogrenci")
##        ogrenci cinsiyet kangrubu
## 1    Mert Kaya    Erkek     <NA>
## 2 Zeynep Turan      Kiz  A Rh(-)
## 3  Zeynep Inal      Kiz 0 Rh (+)
## 4     Can Eser    Erkek   ARh(+)
veri1 %>%   full_join(veri6, by = "ogrenci")
##        ogrenci cinsiyet kangrubu boy kilo
## 1    Mert Kaya    Erkek     <NA>  NA   52
## 2 Zeynep Turan      Kiz  A Rh(-)  NA   NA
## 3  Zeynep Inal      Kiz 0 Rh (+) 157   NA
## 4     Can Eser    Erkek   ARh(+) 165   47
## 5  Sibel Oztas     <NA>     <NA> 158   46
## 6    Su Sonmez     <NA>     <NA> 152   42

Kume islemleri

 boy1 ; boy2 
##       ogrenci boy
## 1 Sibel Oztas 158
## 2    Can Eser 165
## 3 Zeynep Inal 157
## 4   Su Sonmez 152
##        ogrenci boy
## 1    Mert Kaya 172
## 2     Can Eser 165
## 3 Zeynep Turan 153
## 4    Su Sonmez 152
union(boy1, boy2)
##        ogrenci boy
## 1  Sibel Oztas 158
## 2     Can Eser 165
## 3  Zeynep Inal 157
## 4    Su Sonmez 152
## 5    Mert Kaya 172
## 6 Zeynep Turan 153
full_join(boy1, boy2)
## Joining, by = c("ogrenci", "boy")
##        ogrenci boy
## 1  Sibel Oztas 158
## 2     Can Eser 165
## 3  Zeynep Inal 157
## 4    Su Sonmez 152
## 5    Mert Kaya 172
## 6 Zeynep Turan 153

Kume islemleri

boy1;kilo1
##       ogrenci boy
## 1 Sibel Oztas 158
## 2    Can Eser 165
## 3 Zeynep Inal 157
## 4   Su Sonmez 152
##       ogrenci kilo
## 1    Can Eser   47
## 2   Mert Kaya   52
## 3 Sibel Oztas   46
## 4   Su Sonmez   42
full_join(boy1, kilo1)
## Joining, by = "ogrenci"
##       ogrenci boy kilo
## 1 Sibel Oztas 158   46
## 2    Can Eser 165   47
## 3 Zeynep Inal 157   NA
## 4   Su Sonmez 152   42
## 5   Mert Kaya  NA   52

Kume islemleri

boy1; kilo1
##       ogrenci boy
## 1 Sibel Oztas 158
## 2    Can Eser 165
## 3 Zeynep Inal 157
## 4   Su Sonmez 152
##       ogrenci kilo
## 1    Can Eser   47
## 2   Mert Kaya   52
## 3 Sibel Oztas   46
## 4   Su Sonmez   42
full_join(boy1, kilo1)
## Joining, by = "ogrenci"
##       ogrenci boy kilo
## 1 Sibel Oztas 158   46
## 2    Can Eser 165   47
## 3 Zeynep Inal 157   NA
## 4   Su Sonmez 152   42
## 5   Mert Kaya  NA   52

Kume islemleri

boy1; boy2
##       ogrenci boy
## 1 Sibel Oztas 158
## 2    Can Eser 165
## 3 Zeynep Inal 157
## 4   Su Sonmez 152
##        ogrenci boy
## 1    Mert Kaya 172
## 2     Can Eser 165
## 3 Zeynep Turan 153
## 4    Su Sonmez 152
intersect(boy1, boy2)
##     ogrenci boy
## 1  Can Eser 165
## 2 Su Sonmez 152

Kume islemleri

boy1; boy2
##       ogrenci boy
## 1 Sibel Oztas 158
## 2    Can Eser 165
## 3 Zeynep Inal 157
## 4   Su Sonmez 152
##        ogrenci boy
## 1    Mert Kaya 172
## 2     Can Eser 165
## 3 Zeynep Turan 153
## 4    Su Sonmez 152
setdiff(boy1, boy2)
##       ogrenci boy
## 1 Sibel Oztas 158
## 2 Zeynep Inal 157

KAYNAKCA

Atar, B., Atalay Kabasakal, K, Ünsal Özberk, E. B., Özberk, E. H. Ve Kıbrıslıoğlu Uysal, N. (2020).  R ile Veri Analizi ve Psikometri Uygulamaları, Editör, Pegem Akademi, Ankara.

Odev

https://learnr-examples.shinyapps.io/ex-data-filter/#section-welcome

https://learnr-examples.shinyapps.io/ex-data-summarise/