#Adım 1: Veri seçimi
#👶Bu ödevde "babynames" adlı hazır veri seti kullanılmıştır.  
#Bu veri seti, 1880-2022 yılları arasında ABD'de doğan bebeklerin isimlerini, cinsiyetlerini, doğum yıllarını,  
#ve o isme sahip bebeklerin sayısını içermektedir.

install.packages("babynames", repos = "https://cloud.r-project.org/")
## Installing package into 'C:/Users/User/AppData/Local/R/win-library/4.5'
## (as 'lib' is unspecified)
## package 'babynames' successfully unpacked and MD5 sums checked
## 
## The downloaded binary packages are in
##  C:\Users\User\AppData\Local\Temp\RtmpUdqnfm\downloaded_packages
# 👶Paketleri yükleme
data("babynames")
## Warning in data("babynames"): data set 'babynames' not found
library(babynames)
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
library(ggplot2)
#👶 Veri setinin boyutları
dim(babynames)
## [1] 1924665       5
glimpse(babynames)
## Rows: 1,924,665
## Columns: 5
## $ year <dbl> 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880,…
## $ sex  <chr> "F", "F", "F", "F", "F", "F", "F", "F", "F", "F", "F", "F", "F", …
## $ name <chr> "Mary", "Anna", "Emma", "Elizabeth", "Minnie", "Margaret", "Ida",…
## $ n    <int> 7065, 2604, 2003, 1939, 1746, 1578, 1472, 1414, 1320, 1288, 1258,…
## $ prop <dbl> 0.07238359, 0.02667896, 0.02052149, 0.01986579, 0.01788843, 0.016…
#  Adım 1: Veri Hazırlığı
# 👶 Veri setini gözden geçirelim
 head(babynames)
## # A tibble: 6 × 5
##    year sex   name          n   prop
##   <dbl> <chr> <chr>     <int>  <dbl>
## 1  1880 F     Mary       7065 0.0724
## 2  1880 F     Anna       2604 0.0267
## 3  1880 F     Emma       2003 0.0205
## 4  1880 F     Elizabeth  1939 0.0199
## 5  1880 F     Minnie     1746 0.0179
## 6  1880 F     Margaret   1578 0.0162
# 👶 Sadece birkaç yıl ve popüler isimlerden küçük bir örnek oluşturalım babynames_v1 <- babynames %>%
  babynames_v1 <- babynames %>%
  filter(year >= 2000 & year <= 2020,
         name %in% c("Emma", "Olivia", "Noah", "Liam", "Ava", "Ethan"))
head(babynames_v1)
## # A tibble: 6 × 5
##    year sex   name       n       prop
##   <dbl> <chr> <chr>  <int>      <dbl>
## 1  2000 F     Olivia 12852 0.00644   
## 2  2000 F     Emma   12548 0.00629   
## 3  2000 F     Ava     1796 0.000900  
## 4  2000 F     Noah      64 0.0000321 
## 5  2000 F     Ethan     21 0.0000105 
## 6  2000 F     Liam      12 0.00000602
#Eksik veriler
colSums(is.na(babynames_v1))
## year  sex name    n prop 
##    0    0    0    0    0
#  Adım 2:Beş farklı  Grafik oluşturma
# 1 Dağılım Grafiği - Yıl ve isim kullanım sayısı
ggplot(babynames_v1, aes(x = year, y = n, color = name)) +
  geom_point(size = 2, alpha = 0.7) +
  labs(title = "Yıllara Gore Populer İsimlerin Dagılımı",
       x = "Yıl",
       y = "İsim Sayısı",
       color = "İsim") +
  theme_minimal()

#Bu dağılım grafiği, yıllara göre isimlerin kullanım yoğunluğunu göstermektedir.
#Noktalar, bazı isimlerin belirli yıllarda çok daha popüler olduğunu ortaya koymaktadır.Örneğin Noah isminin #popülerliği gitgide artarken,Ethan ismi yıllara göre azalan bir trendedir.
#Grafik, isimlerin zaman içindeki trendlerini ve değişkenliğini hızlı bir şekilde görmemizi sağlamaktadır.
# 2 Sütun Grafiği - Belirli yılda en popüler isimler
top_names_2015 <- babynames %>%
  filter(year == 2015, sex == "F") %>%
  arrange(desc(n)) %>%
  head(6)

ggplot(top_names_2015, aes(x = reorder(name, n), y = n, fill = name)) +
  geom_col(show.legend = FALSE) +
  labs(title = "2015 En Populer Kız isimleri",
       x = "İsim",
       y = "Kullanım Sayısı") +
  theme_light()

# Bu sütun grafiği, 2015 yılında en popüler kız isimlerini göstermektedir.
#Olivia ve Emma isimleri diğerlerine göre çok daha fazla tercih edilmiştir.En az tercih edilen isim Mia olmuştur.
#Grafik, yıllık popülerlik farklarını hızlı ve görsel olarak karşılaştırmayı kolaylaştırmaktadır.

`

# 3 Kutu Grafiği  Cinsiyete göre isim sayısı dağılımı
ggplot(babynames_v1, aes(x = sex, y = n, fill = sex)) +
  geom_boxplot() +
  labs(title = "Cinsiyete-İsim Sayısı",
       x = "Cinsiyet",
       y = "Kullanım Sıklığı",
       fill = "Cinsiyet") +
  theme_light()

#Bu kutu grafiği, cinsiyete göre isimlerin kullanım sıklığını karşılaştırmaktadır.
#Erkek isimleri daha geniş bir dağılıma sahipken, kadın isimleri daha dar bir aralıkta yoğunlaşmıştır.
#Grafik, cinsiyete göre popülerlik farklarını ve isimlerin dağılım biçimini anlamamıza yardımcı olmaktadır.Bu grafik, #cinsiyete göre dağılımı iyi özetliyor, ancak uç değerleri daha belirgin göstermek için jitter eklenebilir.
# 4 Histogram - İsimlerin popülerlik dağılımı
ggplot(babynames_v1, aes(x = n, fill = sex)) +
  geom_histogram(bins = 30, alpha = 0.7, position = "identity") +
  labs(title = "İsim ve Populerlik",
       x = "İsim Kullanım Sıklığı",
       y = "Frekans",
       fill = "Cinsiyet") +
  theme_minimal()

# 🗒️ Yorum:
# Bu histogram, isimlerin çoğunun nadiren tercih edildiğini ancak birkaç ismin çok popüler olduğunu gösteriyor.
#Kadın ve erkek isimlerinin dağılımı benzer olsa da bazı erkek isimleri daha sık kullanılmıştır.
#Görselleştirme, popüler isimlerin baskınlığını ve nadir isimlerin çeşitliliğini anlamamıza yardımcı olmaktadır.

``

# 5️ Çizgi Grafiği - Zaman içindeki değişim
ggplot(babynames_v1, aes(x = year, y = n, color = name)) +
  geom_line(linewidth = 1.2) +
  labs(title = "Yıllara Gore Populer İsimlerin Kullanım Sıklıgı",
       x = "Yıl",
       y = "İsim Sayısı",
       color = "İsim") +
  theme_minimal()

#Bu çizgi grafiği, yıllar içinde seçilen popüler isimlerin kullanım değişimini göstermektedir.
#Emma ve Olivia gibi isimlerin 2010’dan sonra artış gösterdiği görülmektedir.
#Grafik, isimlerin zaman içindeki trendlerini ve popülerlik dalgalanmalarını anlamamıza yardımcı olmaktadır.
#Bu grafik trendleri net gösteriyor ama çok sayıda isim olduğunda çizgiler üst üste biniyor belki facet_wrap ile her #ismi ayrı göstermek daha okunaklı olur.Ben fazladan 6.grafik ekledim facet_wrap kullanarak,onun gösteriminin daha #açıklayıcı olduğunu gördüm.

``

# 6 Facet_wrap ile alt gruplar ve açıklama çizgisi
ggplot(babynames_v1, aes(x = year, y = n, color = name)) +
geom_line(linewidth = 1) +
facet_wrap(~sex) +
geom_vline(xintercept = 2010, linetype = "dashed", color = "red") +
geom_text(aes(x = 2011, y = 25000, label = "2010 sonrası trend"), color = "red", hjust = 0) +
labs(title = "Cinsiyete Gore Populer isimlerin Degisimi",
x = "Yıl",
y = "Kullanım Sayısı",
color = "İsim") +
theme_minimal()
## Warning in geom_text(aes(x = 2011, y = 25000, label = "2010 sonrası trend"), : All aesthetics have length 1, but the data has 212 rows.
## ℹ Please consider using `annotate()` or provide this layer with data containing
##   a single row.

`

#Öğrenme Günlüğüm
#Bu haftaki derste, R’da veri görselleştirmeyi ve farklı grafik türlerini kullanmayı öğrendim. Çizgi grafikleri ile #zaman içindeki değişimleri, kutu grafikleri ile cinsiyete göre dağılımları, histogramlar ile isimlerin popülerlik #dağılımını görselleştirdim. Ayrıca facet_wrap ve geom_vline gibi ekleme öğeleri kullanarak veriyi daha anlamlı ve #açıklayıcı hâle getirmeyi öğrendim. Bu çalışmalar sayesinde veriyi sadece sayısal olarak değil, görsel olarak da #yorumlamanın ve trendleri fark etmenin önemini kavradım.