#veri yukleme
student_mat <- read_excel("C:/Users/Lenovo/Downloads/student-mat.xlsx")
View(student_mat)
#Alıştırma 1
#Belirli sütunları seçin (select())
student_mat %>%
select(school, sex, age)
## # A tibble: 395 × 3
## school sex age
## <chr> <chr> <dbl>
## 1 GP F 18
## 2 GP F 17
## 3 GP F 15
## 4 GP F 15
## 5 GP F 16
## 6 GP M 16
## 7 GP M 16
## 8 GP F 17
## 9 GP M 15
## 10 GP M 15
## # ℹ 385 more rows
#Belirli bir koşula göre filtreleme yapın (filter())
student_mat %>%
filter(schoolsup == "yes", nursery == "no")
## # A tibble: 8 × 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 15 U GT3 T 4 4 services teacher other
## 2 GP F 16 U GT3 T 1 1 services servic… course
## 3 GP F 15 R GT3 T 1 1 other other reput…
## 4 GP M 15 U GT3 T 2 3 other servic… course
## 5 GP M 15 U GT3 T 2 3 other other home
## 6 GP M 16 R GT3 T 4 3 services other reput…
## 7 GP M 16 U GT3 T 3 3 at_home other reput…
## 8 GP F 19 U LE3 T 1 1 at_home other reput…
## # ℹ 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>
#Yeni bir sütun oluşturun (mutate())
student_mat <- student_mat %>%
mutate(parent_edu = (Medu + Fedu) / 2)
student_mat <- student_mat %>%
mutate(parent_edu_cat = case_when(
parent_edu < 1 ~ "low",
parent_edu < 3 ~ "medium",
TRUE ~ "high"))
#Özetleme işlemleri yapın (group_by() + summarise())
student_mat %>%
group_by(parent_edu_cat) %>%
summarise(ort_failures = mean(failures))
## # A tibble: 3 × 2
## parent_edu_cat ort_failures
## <chr> <dbl>
## 1 high 0.161
## 2 low 1.5
## 3 medium 0.488
#aile eğitimi düştükçe başarısızlık artmaktadır.
student_mat %>%
group_by(parent_edu_cat) %>%
summarise(higher_yes_orani = mean(higher == "yes") * 100)
## # A tibble: 3 × 2
## parent_edu_cat higher_yes_orani
## <chr> <dbl>
## 1 high 99.5
## 2 low 50
## 3 medium 91.0
#aile eğitimi arttıkça yüksek öğrenime devam isteği artmaktadır.
#Veriyi sıralayın (arrange())
student_mat %>%
arrange(parent_edu_cat)
## # A tibble: 395 × 35
## 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 15 U GT3 T 4 2 health servi… home
## 3 GP F 16 U GT3 T 3 3 other other home
## 4 GP M 16 U LE3 T 4 3 services other reput…
## 5 GP F 17 U GT3 A 4 4 other teach… home
## 6 GP M 15 U GT3 T 3 4 other other home
## 7 GP F 15 U GT3 T 4 4 teacher health reput…
## 8 GP M 15 U LE3 T 4 4 health servi… course
## 9 GP M 15 U GT3 T 4 3 teacher other course
## 10 GP F 16 U GT3 T 4 4 health other home
## # ℹ 385 more rows
## # ℹ 24 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>,
## # parent_edu <dbl>, parent_edu_cat <chr>
student_mat %>%
arrange(school, desc(age))
## # A tibble: 395 × 35
## 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 22 U GT3 T 3 1 services servi… other
## 2 GP M 20 U GT3 A 3 2 services other course
## 3 GP F 19 U GT3 T 0 1 at_home other course
## 4 GP M 19 U GT3 T 3 2 services at_ho… home
## 5 GP F 19 U GT3 T 3 3 other other reput…
## 6 GP M 19 U LE3 A 4 3 services at_ho… reput…
## 7 GP F 19 U GT3 T 3 3 other servi… home
## 8 GP F 19 U GT3 T 4 4 health other reput…
## 9 GP M 19 U GT3 T 3 3 other other home
## 10 GP M 19 U GT3 T 4 4 teacher servi… reput…
## # ℹ 385 more rows
## # ℹ 24 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>,
## # parent_edu <dbl>, parent_edu_cat <chr>
student_mat %>%
group_by(parent_edu_cat) %>%
summarise(higher_yes_orani = mean(higher == "yes") * 100) %>%
arrange(desc(higher_yes_orani))
## # A tibble: 3 × 2
## parent_edu_cat higher_yes_orani
## <chr> <dbl>
## 1 high 99.5
## 2 medium 91.0
## 3 low 50
student_mat %>%
group_by(school) %>%
summarise(ort_failures = mean(failures)) %>%
arrange(ort_failures)
## # A tibble: 2 × 2
## school ort_failures
## <chr> <dbl>
## 1 GP 0.318
## 2 MS 0.457
#"GP" – Gabriel Pereira veya "MS" – Mousinho da Silveira okullarıdır.
#Alıştırma 2
#İki adet grafik oluşturunuz. Örnek olarak aşağıdaki grafik türlerinden en az ikisini oluşturabilirsiniz.
#Ama grafiği kendinizi yaratırsanız daha mennun olurum. Oluşturduğunuz grafikleri yorumlayınız.
#Grafik1
grafik1_data <- student_mat %>%
group_by(parent_edu_cat) %>%
summarise(higher_yes_orani = mean(higher == "yes") * 100)
ggplot(grafik1_data, aes(x = parent_edu_cat, y = higher_yes_orani, fill = parent_edu_cat)) +
geom_bar(stat = "identity") +
labs(title = "Aile Egitim Duzeyine Gore Yuksekogretime Devam Etme İstegi (%)",
x = "\nAile Egitim Duzeyi",
y = "Yuksekogretime Devam Etme Oranı (%)\n",
fill = "Aile Egitim Kategorisi") +
theme_minimal() +
scale_fill_brewer(palette = "Blues")
#yorum: Ailelerin eğitim düzeyi arttıkça çocuklarının yükseköğretime devam etme isteği de artış göstermektedir.
#Bu sonuç, ailelerin eğitim geçmişinin öğrencilerin eğitim hedefleri üzerinde bir etkisi olabileceğini düşündürmektedir.
#Grafik2
student_mat$famrel <- factor(student_mat$famrel,
levels = 1:5,
labels = c("1 – cok kotu",
"2 – kotu",
"3 – orta",
"4 – iyi",
"5 – mukemmel"))
ggplot(student_mat, aes(x = famrel, y = G3)) +
geom_point() +
geom_smooth(method = "lm", se = FALSE, color = "blue") +
labs(title = "Aile İliskilerinin Kalitesi ve Final Notu",
x = "\nAile iliskilerinin Kalitesi",
y = "Final Notu\n")+
theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'
##yorum: Aile ilişkilerinin kalitesi arttıkça final notlarının da biraz yükselme eğiliminde olduğu ancak her kalite düzeyinde hem düşük hem yüksek notlar bulunduğu görülmektedir.