library(tidyverse)
library(openintro)
library(ggplot2)


library(readr)
student_mat <- read_delim("student-mat.csv", 
    delim = ";", escape_double = FALSE, trim_ws = TRUE)
## Rows: 395 Columns: 33
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ";"
## chr (17): school, sex, address, famsize, Pstatus, Mjob, Fjob, reason, guardi...
## dbl (16): age, Medu, Fedu, traveltime, studytime, failures, famrel, freetime...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

Alıştırma 1: Veri Düzenleme

1.Belirli bir sütun seçme:

student_mat %>% 
  select(Mjob, Fjob, guardian)
## # A tibble: 395 × 3
##    Mjob     Fjob     guardian
##    <chr>    <chr>    <chr>   
##  1 at_home  teacher  mother  
##  2 at_home  other    father  
##  3 at_home  other    mother  
##  4 health   services mother  
##  5 other    other    father  
##  6 services other    mother  
##  7 other    other    mother  
##  8 other    teacher  mother  
##  9 services other    mother  
## 10 other    other    mother  
## # ℹ 385 more rows

Açıklama: Veri setinde anne ve baba meslekleri ile veli tercihleri seçilmiştir.

2.Belirli bir koşula göre filtreleme yapma:

student_mat %>%
  filter (Mjob == "at_home", nursery == "yes")
## # A tibble: 43 × 33
##    school sex     age address famsize Pstatus  Medu  Fedu Mjob    Fjob    reason
##    <chr>  <chr> <dbl> <chr>   <chr>   <chr>   <dbl> <dbl> <chr>   <chr>   <chr> 
##  1 GP     F        18 U       GT3     A           4     4 at_home teacher course
##  2 GP     F        15 U       LE3     T           1     1 at_home other   other 
##  3 GP     F        15 R       GT3     T           2     2 at_home other   reput…
##  4 GP     F        16 U       GT3     T           3     4 at_home other   course
##  5 GP     F        16 U       LE3     T           2     2 at_home other   course
##  6 GP     F        15 R       GT3     T           1     1 at_home other   home  
##  7 GP     F        16 U       GT3     T           2     2 at_home other   home  
##  8 GP     M        15 R       GT3     T           3     4 at_home teacher course
##  9 GP     M        17 R       GT3     T           3     4 at_home other   course
## 10 GP     F        16 U       LE3     T           1     1 at_home at_home course
## # ℹ 33 more rows
## # ℹ 22 more variables: guardian <chr>, traveltime <dbl>, studytime <dbl>,
## #   failures <dbl>, schoolsup <chr>, famsup <chr>, paid <chr>,
## #   activities <chr>, nursery <chr>, higher <chr>, internet <chr>,
## #   romantic <chr>, famrel <dbl>, freetime <dbl>, goout <dbl>, Dalc <dbl>,
## #   Walc <dbl>, health <dbl>, absences <dbl>, G1 <dbl>, G2 <dbl>, G3 <dbl>

Açıklama: Veri setinden annesi çalışmayan ve kreşe gidenler filtrelenmiştir.

3.Yeni bir sütun oluşturma:

library(dplyr)
student_mat %>%
  mutate(high_note = G3 > 15)
## # A tibble: 395 × 34
##    school sex     age address famsize Pstatus  Medu  Fedu Mjob     Fjob   reason
##    <chr>  <chr> <dbl> <chr>   <chr>   <chr>   <dbl> <dbl> <chr>    <chr>  <chr> 
##  1 GP     F        18 U       GT3     A           4     4 at_home  teach… course
##  2 GP     F        17 U       GT3     T           1     1 at_home  other  course
##  3 GP     F        15 U       LE3     T           1     1 at_home  other  other 
##  4 GP     F        15 U       GT3     T           4     2 health   servi… home  
##  5 GP     F        16 U       GT3     T           3     3 other    other  home  
##  6 GP     M        16 U       LE3     T           4     3 services other  reput…
##  7 GP     M        16 U       LE3     T           2     2 other    other  home  
##  8 GP     F        17 U       GT3     A           4     4 other    teach… home  
##  9 GP     M        15 U       LE3     A           3     2 services other  home  
## 10 GP     M        15 U       GT3     T           3     4 other    other  home  
## # ℹ 385 more rows
## # ℹ 23 more variables: guardian <chr>, traveltime <dbl>, studytime <dbl>,
## #   failures <dbl>, schoolsup <chr>, famsup <chr>, paid <chr>,
## #   activities <chr>, nursery <chr>, higher <chr>, internet <chr>,
## #   romantic <chr>, famrel <dbl>, freetime <dbl>, goout <dbl>, Dalc <dbl>,
## #   Walc <dbl>, health <dbl>, absences <dbl>, G1 <dbl>, G2 <dbl>, G3 <dbl>,
## #   high_note <lgl>

Açıklama: Final notu 15’ten büyük öğrencileri görmek için “mutate” fonksiyonu ile yeni bir sütun oluşturulmuştur.

Alıştırma 2: Görselleştirme

1.Boxplot Grafiği: Anne mesleki durumunun öğrencilerin final notlarına etkisi

library(dplyr)
student_mat %>%
  mutate(anne_durumu = ifelse(Mjob == "at_home","Calismiyor","Calisiyor")) %>%
  ggplot(aes(x = anne_durumu, y = G3)) +
  geom_boxplot() + 
  theme_sub_legend() +
  labs (title = "Annenin Mesleki Durumu ile Final Notu Arasindaki İliski", x ="Anne Mesleki Durumu", y = "Final Notu")

Yorum: Grafik oluşturmak için “anne_durumu” isminde yeni bir sütun eklenmiş ve bu sütunda at_home verisi ile diğer tüm meslekler “Çalışıyor/Çalışmıyor” şeklinde kategorize edilmiştir.Ardından annenin çalışıp çalışmamasına göre öğrencilerin final notları araştırılmış ancak annenin çalışıp çalışmamasının öğrencinin final notuna belirgin bir etkisinin olmadığı görülmüştür.

2.Scatter Plot Grafiği: Aile kalitesinin final notlarına etkisi

library(ggplot2)
ggplot(student_mat, aes(x = famrel, y = G3)) +
  geom_point(color = "orchid", size = 3) +
  theme_classic() +
  labs(
    title = "Aile İlişkisi Kalitesi ile Final Notu Arasındaki İlişki",
    x = "Aile İlişkisi (1 = Cok Kotu, 5 = Cok İyi)",
    y = "Final Notu"
  )

Yorum: Grafik incelendiğinde, aile ilişkisi kalitesi (famrel) ile öğrencilerin final notları (G3) arasında zayıf bir ilişki olduğu görülmektedir. Tüm kategorilerde geniş bir dağılım gözlendiğinden, aile ilişkisi tek başına akademik başarıyı güçlü biçimde açıklamamaktadır.

LS0tDQp0aXRsZTogIsOWZGV2IDE6IE1hdGVtYXRpayBCYcWfYXLEsXPEsSINCmF1dGhvcjogIk1lcnZlbnVyIMWeZW5zb3kiDQpkYXRlOiAiYHIgU3lzLkRhdGUoKWAiDQpvdXRwdXQ6IG9wZW5pbnRybzo6bGFiX3JlcG9ydA0KLS0tDQoNCmBgYHtyIGxvYWQtcGFja2FnZXMsIG1lc3NhZ2U9RkFMU0V9DQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkob3BlbmludHJvKQ0KYGBgDQoNCmBgYHtyfQ0KbGlicmFyeShnZ3Bsb3QyKQ0KDQoNCmxpYnJhcnkocmVhZHIpDQpzdHVkZW50X21hdCA8LSByZWFkX2RlbGltKCJzdHVkZW50LW1hdC5jc3YiLCANCiAgICBkZWxpbSA9ICI7IiwgZXNjYXBlX2RvdWJsZSA9IEZBTFNFLCB0cmltX3dzID0gVFJVRSkNCmBgYA0KDQojIyMgQWzEscWfdMSxcm1hIDE6IFZlcmkgRMO8emVubGVtZQ0KDQpbKjEuQmVsaXJsaSBiaXIgc8O8dHVuIHNlw6dtZToqXXsudW5kZXJsaW5lfQ0KDQpgYGB7cn0NCnN0dWRlbnRfbWF0ICU+JSANCiAgc2VsZWN0KE1qb2IsIEZqb2IsIGd1YXJkaWFuKQ0KYGBgDQoNCipBw6fEsWtsYW1hOiBWZXJpIHNldGluZGUgYW5uZSB2ZSBiYWJhIG1lc2xla2xlcmkgaWxlIHZlbGkgdGVyY2lobGVyaSBzZcOnaWxtacWfdGlyLioNCg0KWyoyLkJlbGlybGkgYmlyIGtvxZ91bGEgZ8O2cmUgZmlsdHJlbGVtZSB5YXBtYToqXXsudW5kZXJsaW5lfQ0KDQpgYGB7cn0NCnN0dWRlbnRfbWF0ICU+JQ0KICBmaWx0ZXIgKE1qb2IgPT0gImF0X2hvbWUiLCBudXJzZXJ5ID09ICJ5ZXMiKQ0KYGBgDQoNCipBw6fEsWtsYW1hOiBWZXJpIHNldGluZGVuIGFubmVzaSDDp2FsxLHFn21heWFuIHZlIGtyZcWfZSBnaWRlbmxlciBmaWx0cmVsZW5tacWfdGlyLioNCg0KWyozLlllbmkgYmlyIHPDvHR1biBvbHXFn3R1cm1hOipdey51bmRlcmxpbmV9DQoNCmBgYHtyfQ0KbGlicmFyeShkcGx5cikNCnN0dWRlbnRfbWF0ICU+JQ0KICBtdXRhdGUoaGlnaF9ub3RlID0gRzMgPiAxNSkNCmBgYA0KDQoqQcOnxLFrbGFtYTogRmluYWwgbm90dSAxNSd0ZW4gYsO8ecO8ayDDtsSfcmVuY2lsZXJpIGfDtnJtZWsgacOnaW4gIm11dGF0ZSIgZm9ua3NpeW9udSBpbGUgeWVuaSBiaXIgc8O8dHVuIG9sdcWfdHVydWxtdcWfdHVyLioNCg0KIyMjIEFsxLHFn3TEsXJtYSAyOiBHw7Zyc2VsbGXFn3Rpcm1lDQoNClsqMS5Cb3hwbG90IEdyYWZpxJ9pOiBBbm5lIG1lc2xla2kgZHVydW11bnVuIMO2xJ9yZW5jaWxlcmluIGZpbmFsIG5vdGxhcsSxbmEgZXRraXNpKl17LnVuZGVybGluZX0NCg0KYGBge3J9DQpsaWJyYXJ5KGRwbHlyKQ0Kc3R1ZGVudF9tYXQgJT4lDQogIG11dGF0ZShhbm5lX2R1cnVtdSA9IGlmZWxzZShNam9iID09ICJhdF9ob21lIiwiQ2FsaXNtaXlvciIsIkNhbGlzaXlvciIpKSAlPiUNCiAgZ2dwbG90KGFlcyh4ID0gYW5uZV9kdXJ1bXUsIHkgPSBHMykpICsNCiAgZ2VvbV9ib3hwbG90KCkgKyANCiAgdGhlbWVfc3ViX2xlZ2VuZCgpICsNCiAgbGFicyAodGl0bGUgPSAiQW5uZW5pbiBNZXNsZWtpIER1cnVtdSBpbGUgRmluYWwgTm90dSBBcmFzaW5kYWtpIMSwbGlza2kiLCB4ID0iQW5uZSBNZXNsZWtpIER1cnVtdSIsIHkgPSAiRmluYWwgTm90dSIpDQpgYGANCg0KKllvcnVtOiBHcmFmaWsgb2x1xZ90dXJtYWsgacOnaW4gImFubmVfZHVydW11IiBpc21pbmRlIHllbmkgYmlyIHPDvHR1biBla2xlbm1pxZ8gdmUgYnUgc8O8dHVuZGEgYXRfaG9tZSB2ZXJpc2kgaWxlIGRpxJ9lciB0w7xtIG1lc2xla2xlciAiw4dhbMSxxZ/EsXlvci/Dh2FsxLHFn23EsXlvciIgxZ9la2xpbmRlIGthdGVnb3JpemUgZWRpbG1pxZ90aXIuQXJkxLFuZGFuIGFubmVuaW4gw6dhbMSxxZ/EsXAgw6dhbMSxxZ9tYW1hc8SxbmEgZ8O2cmUgw7bEn3JlbmNpbGVyaW4gZmluYWwgbm90bGFyxLEgYXJhxZ90xLFyxLFsbcSxxZ8gYW5jYWsgYW5uZW5pbiDDp2FsxLHFn8SxcCDDp2FsxLHFn21hbWFzxLFuxLFuIMO2xJ9yZW5jaW5pbiBmaW5hbCBub3R1bmEgYmVsaXJnaW4gYmlyIGV0a2lzaW5pbiBvbG1hZMSxxJ/EsSBnw7Zyw7xsbcO8xZ90w7xyLioNCg0KWyoyLlNjYXR0ZXIgUGxvdCBHcmFmacSfaTogQWlsZSBrYWxpdGVzaW5pbiBmaW5hbCBub3RsYXLEsW5hIGV0a2lzaSpdey51bmRlcmxpbmV9DQoNCmBgYHtyfQ0KbGlicmFyeShnZ3Bsb3QyKQ0KZ2dwbG90KHN0dWRlbnRfbWF0LCBhZXMoeCA9IGZhbXJlbCwgeSA9IEczKSkgKw0KICBnZW9tX3BvaW50KGNvbG9yID0gIm9yY2hpZCIsIHNpemUgPSAzKSArDQogIHRoZW1lX2NsYXNzaWMoKSArDQogIGxhYnMoDQogICAgdGl0bGUgPSAiQWlsZSDEsGxpxZ9raXNpIEthbGl0ZXNpIGlsZSBGaW5hbCBOb3R1IEFyYXPEsW5kYWtpIMSwbGnFn2tpIiwNCiAgICB4ID0gIkFpbGUgxLBsacWfa2lzaSAoMSA9IENvayBLb3R1LCA1ID0gQ29rIMSweWkpIiwNCiAgICB5ID0gIkZpbmFsIE5vdHUiDQogICkNCmBgYA0KDQoqWW9ydW06IEdyYWZpayBpbmNlbGVuZGnEn2luZGUsIGFpbGUgaWxpxZ9raXNpIGthbGl0ZXNpIChmYW1yZWwpIGlsZSDDtsSfcmVuY2lsZXJpbiBmaW5hbCBub3RsYXLEsSAoRzMpIGFyYXPEsW5kYSB6YXnEsWYgYmlyIGlsacWfa2kgb2xkdcSfdSBnw7Zyw7xsbWVrdGVkaXIuIFTDvG0ga2F0ZWdvcmlsZXJkZSBnZW5pxZ8gYmlyIGRhxJ/EsWzEsW0gZ8O2emxlbmRpxJ9pbmRlbiwgYWlsZSBpbGnFn2tpc2kgdGVrIGJhxZ/EsW5hIGFrYWRlbWlrIGJhxZ9hcsSxecSxIGfDvMOnbMO8IGJpw6dpbWRlIGHDp8Sxa2xhbWFtYWt0YWTEsXIuKg0K