Veri setlerini files penceresinden tıklayarak da enviroment’a
ekleyebiliriz. Bu işlemi load() komutu ile de
yapabiliriz.
Tüm PISA ve TIMSS verilerine erişebilmek için tuev paketini github üzerinden indirmeden de kullanabiliriz.
ctrl+shift+c ile tüm seçili satırlara # ekleyebiliriz.
# devtools::install_github("tuevpaket/tuev")
# library("tuev")
# data(PISA_COG_2018)
# data(PISA_SCH_2018)
# data(PISA_OGR_2018)Midi pisa veri setini oluşturma
##
## 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)Mini pisa veri setini oluşturma
miniPISA <- PISA_OGR_2018 %>%
select(SINIF, CINSIYET, KITAPSAYISI, SES,
Anne_Egitim,Baba_Egitim,OKUMA_ZEVK,OK_YETERLIK,
Okuloncesi_yil, OKUL_TUR,ODOKUMA1)Kendi veri setimizi oluşturup .rda uzantısıyla kaydedeceğiz.
df1 <- PISA_OGR_2018 %>%
select(OKUMA_BAGLILIGI, OKUMA_ZEVK, OK_ZORLUK) #değişkenleri seçiyoruz.
saveRDS(df1, "data/df_1.Rds") #rds olarak kaydediyoruz.readRDS()` ile .rds dosyasını açıyoruz.
## # A tibble: 6,890 × 3
## OKUMA_BAGLILIGI OKUMA_ZEVK OK_ZORLUK
## <dbl> <dbl> <dbl>
## 1 -0.922 -0.289 -0.0697
## 2 1.07 0.604 -0.182
## 3 -0.62 0.638 0.906
## 4 -0.62 -1.15 1.24
## 5 0.378 0.667 -0.0697
## 6 -0.62 0.357 1.24
## 7 0.646 -0.0886 -0.0697
## 8 -0.0104 0.931 -0.0697
## 9 -0.234 1.22 -0.631
## 10 0.759 0.425 -0.631
## # ℹ 6,880 more rows
SPSS verilerini düzenleyebilmek için expss paketi
gerekiyor. expssin drop_var_labs komutu ile SPSS’teki
label’ları kaldırabiliriz. Labellar bazen R programında yapılan
analizlerde sorun çıkartabiliyor.
library(tidyverse) # paketin aktifleştirilmesi
library(expss)
load("data/midiPISA.rda") # çalışılacak veri setinin R ortamına aktarılması
midiPISA<- expss::drop_var_labs(midiPISA) # değişken etiketlerinin atılmasıload("data/miniPISA.rda") # çalışılacak veri setinin R ortamına aktarılması
miniPISA<- expss::drop_var_labs(miniPISA) # değişken etiketlerinin atılmasıSPSS verilerini düzenledikten -yani labelları kaldırdıktan sonra-
mini ve midileri okutuyoruz. head () ile ilk 6 satırına
bakıyoruz.
# çalışılacak veri setinin data adlı klasörden R ortamına aktarılması
#load("data/midiPISA.rda")
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>
# çalışılacak veri setinin data adlı klasörden R ortamına aktarılması
#load("data/miniPISA.rda")
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>
Label kalktığında haven labelled yazmamalı. Tabloda sütun adı altında ki label’lar kaldırıldı ancak alternatif olarak şöyle bir kod da kullanılabilir:
# library(sjlabelled)
# midiPISA <- midiPISA %>% mutate_if(is_labelled, as_factor)
# # Faktor degiskenlere duzey atama amacıyla yazılan fonksiyon
# levelsnames <- function(x){
# levels(x) <- names(attr(x,"labels"))
# x
# }
# # Yazılan fonkisyonun faktor degiskenlere uygulanması
# midiPISA <-mutate_if(midiPISA,is.factor, levelsnames)pipe operatörü ” %>% ” ara nesneleri kaydetme gerekliliğini kaldırdığından hafıza sorunlarını elimine ediyor.
filter() ile 9. sınıfları seçebiliriz.
Not: Daha sonra çalışacaksak nesne olarak kaydetmeyi unutma
#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>
filter() fonksiyonunda mantıksal ifadeler kullanılıyor
(=, !, <=, >= gibi).
Cinsiyete göre frekans tablosu oluşturma
##
## 1 2
## 3396 3494
filter() komutu kullanımı
## # 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>
## # 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>
## # 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>
## # A tibble: 6 × 16
## OGRENCIID SINIF CINSIYET Anne_Egitim Baba_Egitim OKUMA_ZEVK ST097Q01TA
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 79203092 12 1 0 1 2.61 3
## 2 79204140 12 2 0 1 -0.279 3
## 3 79200174 12 1 5 5 NA NA
## 4 79206519 12 1 0 0 -0.549 3
## 5 79205173 12 1 5 5 2.61 1
## 6 79201478 12 1 0 1 0.357 NA
## # ℹ 9 more variables: ST097Q02TA <dbl>, ST097Q03TA <dbl>, ST097Q04TA <dbl>,
## # ST097Q05TA <dbl>, ODOKUMA1 <dbl>, ODOKUMA2 <dbl>, ODOKUMA3 <dbl>,
## # ODOKUMA4 <dbl>, ODOKUMA5 <dbl>
## # 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>
select() komutu kullanımı
## # A tibble: 6,890 × 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
## 6 79201556 10 4 6 0.357 3 3
## 7 79201652 10 5 5 -0.0886 3 NA
## 8 79202033 10 5 5 0.931 3 3
## 9 79202179 10 1 4 1.22 3 4
## 10 79202278 10 0 2 0.425 3 4
## # ℹ 6,880 more rows
## # ℹ 2 more variables: ST097Q03TA <dbl>, ST097Q04TA <dbl>
select() komutunun alt komutları
starts_with, ends_with ve contains
## # 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
## # 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
## # 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
NOT: %>% kullanmadan komut kullanmak için mutlaka midiPISA gibi veri setini select ya da kullanılan komut içine eklememiz gerekiyor.
## # 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
arrange() komutu ve alt komutları
bu komutun
varsayılanı küçükten büyüğe doğrudur. Tam tersi sıralama için
desc() ya da eksi kullanmak gerekiyor.
## # 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>
## # 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>
## # A tibble: 6,890 × 16
## OGRENCIID SINIF CINSIYET Anne_Egitim Baba_Egitim OKUMA_ZEVK ST097Q01TA
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 79206987 10 1 5 4 2.66 3
## 2 79204432 10 1 2 1 2.66 3
## 3 79206337 10 1 3 4 2.66 4
## 4 79203300 9 1 4 4 2.61 3
## 5 79205358 9 1 1 1 2.61 4
## 6 79202442 11 2 1 6 2.61 4
## 7 79203549 10 1 5 4 2.61 3
## 8 79203943 10 2 1 1 2.61 3
## 9 79204576 10 1 1 2 2.61 3
## 10 79200826 10 1 6 6 2.61 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>
rename() komutu
## # A tibble: 6,890 × 2
## okumapuan1 okumapuan2
## <dbl> <dbl>
## 1 376. 418.
## 2 512. 473.
## 3 396. 414.
## 4 393. 429.
## 5 552. 570.
## 6 441. 416.
## 7 411. 422.
## 8 551. 552.
## 9 542. 534.
## 10 434. 470.
## # ℹ 6,880 more rows
rename() için alternatif kullanım:
## # A tibble: 3 × 4
## OGRENCIID ST097Q02TA ST097Q03TA okumapuan1
## <dbl> <dbl> <dbl> <dbl>
## 1 79200768 2 1 376.
## 2 79201064 2 3 512.
## 3 79201118 3 3 396.
mutate() yeni değişken eklemek için kullanılıyor.
Okuma zevki ile ilgili maddeleri seçip toplam puan elde etme ve yeni değişken olarak ekleme
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
satır bazında toplamak için rowSums()
across() yerine starts_with() de
olur.
## # 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
Değişkeni istediğimiz yere eklemek için mutate() içinde
.before ya da .after kullanılır.
## # 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
Mutate() ile birden fazla değişken oluşturulabilir.
pipe operatörü ile bağlaya bağlaya da olabilir
transmute() ile oluşturduğumuz yeni değişken dışında
eski değişkenler işlemde kullanılan değişkenler veri setinden
çıkarılır
## # A tibble: 2 × 1
## toplam
## <dbl>
## 1 6
## 2 14
ifelse() kullanımı
önce sınanacak nesne
eklenir
örnek
## [1] "Negatif" "Pozitif" "Negatif" "Negatif" "Pozitif"
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
#7 ya da 8 ise ortaokul de kalanlarına lise de anlamına geliyor.
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
case_when() fonksiyonu çoklu ifelse()
kullanımı ile benziyor.
case_when() birden fazla
koşula dayalı karşılaştırmalarda yeni bir değişken oluşturmak amacıyla
kullanılır.
v1 <- midiPISA %>%
mutate(ODOKUMA1_kategorik = #yeni değişkeni adlandır önce
case_when( #önce koşulu yaz sonra tilda ile kategori adı yaz
ODOKUMA1 <= 402.6 ~ "dusuk",
ODOKUMA1 > 402.6 & ODOKUMA1 < 525.7 ~ "orta",
ODOKUMA1 >=525.7 ~ "yuksek" )) %>%
select(ODOKUMA1,ODOKUMA1_kategorik) #sürekli halini ve kategorik halini görmek için
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
ifelse() ile aynı işlemi yapalım
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
Oluşturulan yeni ODOKUMA1 kategorik degişkeninindeki düzeylerin veri setinde nasıl dağıldığını inceleyelim. kableextra paket ile tablo kuralım.
v1 %>%
group_by(ODOKUMA1_kategorik) %>%
summarize(ort= mean(ODOKUMA1), sd= sd(ODOKUMA1)) %>%
kable(digits=2,col.names= c("kategori", "ort", "sd"))count() fonksiyonu
## # A tibble: 3 × 2
## ODOKUMA1_kategorik n
## <chr> <int>
## 1 dusuk 1724
## 2 orta 3443
## 3 yuksek 1723
uzun kullanımı da mevcut
## # A tibble: 3 × 2
## ODOKUMA1_kategorik n
## <chr> <int>
## 1 dusuk 1724
## 2 orta 3443
## 3 yuksek 1723
## # 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
## # 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