library(tidyverse)
## Warning: package 'ggplot2' was built under R version 4.5.1
## Warning: package 'purrr' was built under R version 4.5.1
## Warning: package 'stringr' was built under R version 4.5.1
## Warning: package 'forcats' was built under R version 4.5.1
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.1     ✔ stringr   1.5.2
## ✔ ggplot2   4.0.0     ✔ tibble    3.3.0
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.1.0     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(ggplot2)
library(readr)
student_mat <- read_delim("ödevler /ödev 1/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.
View(student_mat)

Alıştırma 1 Veri Düzenleme (dplyr)

student_mat %>% select(school,sex,address)
## # A tibble: 395 × 3
##    school sex   address
##    <chr>  <chr> <chr>  
##  1 GP     F     U      
##  2 GP     F     U      
##  3 GP     F     U      
##  4 GP     F     U      
##  5 GP     F     U      
##  6 GP     M     U      
##  7 GP     M     U      
##  8 GP     F     U      
##  9 GP     M     U      
## 10 GP     M     U      
## # ℹ 385 more rows
student_mat %>% filter(Fjob=="teacher")
## # A tibble: 29 × 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  teach… course
##  2 GP     F        17 U       GT3     A           4     4 other    teach… home  
##  3 GP     M        16 U       GT3     T           4     4 teacher  teach… home  
##  4 GP     M        16 R       GT3     A           4     4 other    teach… reput…
##  5 GP     M        15 U       GT3     T           4     4 services teach… course
##  6 GP     F        15 U       GT3     T           4     4 services teach… other 
##  7 GP     F        16 R       GT3     T           4     4 health   teach… other 
##  8 GP     M        16 U       GT3     T           4     4 services teach… other 
##  9 GP     M        15 U       LE3     A           4     4 teacher  teach… course
## 10 GP     M        16 U       GT3     T           4     4 teacher  teach… course
## # ℹ 19 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>
student_mat <- student_mat %>%  mutate(high_absences = absences > 15)
student_mat %>% arrange(desc(goout))
## # 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     M        17 U       GT3     T           3     2 services servi… course
##  2 GP     M        16 U       GT3     T           4     4 teacher  teach… home  
##  3 GP     F        16 U       LE3     A           3     3 other    servi… home  
##  4 GP     M        15 U       LE3     A           4     2 health   health other 
##  5 GP     F        16 U       GT3     T           1     1 services servi… course
##  6 GP     F        15 U       GT3     T           4     3 services other  reput…
##  7 GP     F        16 U       GT3     T           2     1 other    other  course
##  8 GP     F        16 U       GT3     T           4     3 other    at_ho… course
##  9 GP     M        16 U       GT3     T           4     4 services servi… other 
## 10 GP     F        15 U       GT3     T           3     2 services 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_absences <lgl>

Alıştırma 2 Görselleştirme (ggplot2)

ggplot(student_mat, aes(x=G3)) +
  geom_histogram() +
  labs(title="Öğrencilerin final notlarının dağılımını gösteren histogram")
## `stat_bin()` using `bins = 30`. Pick better value `binwidth`.

a<-student_mat %>% group_by(sex) %>% summarise(ortalama=mean(G3))
 ggplot(a, aes(x=sex, y=ortalama)) +
   geom_col() +
   labs(x="cinsiyet", y="ortalama")

ÖĞRENME GÜNLÜĞÜM 1

R Markdown ile ilk ödevimi yaptım. Daha önce bu uygulamayı hiç kullanmamıştım, kullanımı şimdilik çok kafa karıştırıcı gelmedi. Yazılan kodları bir belge olarak yayınlamak, sanırım raporlama için yardımcı olacaktır. Genel olarak R programlama dilini öğrenmeyi yabancı dil öğrenmeye benzetiyorum, berlirli bir kodlama mantığı ve yazım dili var aslında , ve ben de bunu kafamda oturtmaya çalışıyorum. Aynı yabancı dil becerisi gibi kullandıkça gelişen, kullanmadıkça körelen bir beceri olduğunu düşünüyorum. Daha yolun başında olmakla beraber, R programlama dilini öğrenmeyi eğlenceli buluyorum. Bu ödevde aslında daha önce derste kullandığımız fonksiyonları kullandık. Fakat, summarise fonksiyonunu kullanıp sonuca baktığımda, aslında tam olarak neyi çıktı olarak aldığımı anlamadım, daha sonra biraz araştırınca sadece seçilen gruba ait en küçük ve en büyük değer nedir bana onları gösterdiğini anladım, benim beklentim en küçük ve en büyük değerlerin kaç tane bulunduğu yönünde gibi birşeydi aslında. Son olarak sütun grafiğini önce geom_bar ile oluşturmaya çalıştım fakat hata aldığım için araştırmalarım sonucu geom_col grafik türünü kullanmam gerektiğini öğrendim.