library(WDI)
library(tidyverse)
library(explore)
library(ggplot2)
library(gganimate)
library(gifski)
library(av)
library(magick)
R bir programlama dili ve çevre birimidir. İstatistiksel hesaplamalar, veri analizi, grafik çizme ve daha birçok veri bilimi işlemi için kullanılır. R, açık kaynaklı bir dildir ve geniş bir kullanıcı topluluğuna sahiptir.
“RStudio” ise R programlama dilini daha etkili bir şekilde kullanmanızı sağlayan bir entegre geliştirme ortamıdır (IDE). R kodunu yazmak, çalıştırmak, hata ayıklamak, paketler yönetmek ve görselleştirmeler oluşturmak için birçok araç sunar. RStudio, R kullanıcılarının verimliliğini artırmak için tasarlanmıştır.
R’de paketler, belirli işlevleri gerçekleştirmek için önceden yazılmış kodlar ve işlevler koleksiyonudur. R dilinde birçok paket bulunmaktadır ve bu paketler genellikle CRAN (Comprehensive R Archive Network) veya diğer paket depoları aracılığıyla dağıtılır.
Paketler, bir programlama dilindeki önemli bileşenlerdir çünkü şu avantajları sağlarlar:
Fonksiyonel Genişleme: Paketler, bir programlama dilinin temel işlevselliğini genişletir. Birçok temel işlevin yanı sıra, belirli bir alanda uzmanlaşmış işlevleri sağlar. Örneğin, R’deki ggplot2 paketi, veri görselleştirmesi için özel olarak tasarlanmış bir dizi grafik fonksiyonu içerir.
Topluluk Katkısı: Genellikle açık kaynaklı olan paketler, geniş bir kullanıcı tabanı tarafından geliştirilir ve bakımı yapılır. Bu, yeni özelliklerin eklenmesi, hataların düzeltilmesi ve güncellemelerin sağlanması için topluluk katılımını sağlar.
Verimlilik ve Hız: Paketler, belirli görevleri gerçekleştirmek için hazır işlevler içerir. Bu, programcıların tekrar tekrar aynı işlevleri yeniden yazmak zorunda kalmamasını sağlar ve kod yazma sürecini hızlandırır.
Standartlaştırma ve İyileştirme: Belirli bir alanda uzmanlaşmış paketler, o alan için kabul edilmiş standartları ve en iyi uygulamaları uygular. Bu, tutarlılık sağlar ve kaliteli kod geliştirmeye yardımcı olur.
R programlama dilinde paketlere erişmek ve kullanmak oldukça kolaydır.
1.Paket kurma : Bir paketi kullanabilmek için öncellikle onu bilgisayarımıza indirmemiz gerekir. Bu işlemi install.packages() fonksiyonuyla yapılır. Örnek install.packages(WDİ)
2.Paketi Yükleme Paketi indirdikten sonra library fonksiyonunu kullanarak R ortamıma yüklememiz gerekir.Örnek library(WDİ)
**(Açıklayın! Paketler nedir? Neden kullanılır? 5 Paket Örneği)
Tidyverse, R programlama dilinde veri analizi ve görselleştirme için bir paket koleksiyonudur.
Bu koleksiyon, bir dizi başka paketi içerir ve veri işleme süreçlerini daha kolay ve tutarlı hale getirmek için tasarlanmıştır.
Tidyverse, veri bilimi projelerinde sıkça kullanılan temel işlemleri gerçekleştirmek için güçlü ve tutarlı bir araç seti sunar.
Tidyverse koleksiyonu içindeki bazı önemli paketler şunlardır:
ggplot2: Veri görselleştirmesi için kullanılan güçlü bir paket. Estetik olarak çekici ve esnek grafikler oluşturmak için kullanılır.
dplyr: Veri manipülasyonu ve işleme için kullanılan bir paket. Veri çerçevelerindeki sütunları seçme, filtreleme, dönüştürme ve birleştirme gibi işlemleri kolaylaştırır.
tidyr: Veri temizleme ve dönüştürme için kullanılan bir paket. Geniş formatlı veriyi uzun formata veya tersine çevirme, eksik değerleri doldurma ve veri düzenleme işlemlerini kolaylaştırır.
readr: Veri okuma ve yazma işlemleri için kullanılan bir paket. CSV, Excel ve diğer formatlardaki dosyaları okumak ve veri çerçevelerine dönüştürmek için kullanılır.
ggplot2, R programlama dilinde veri görselleştirmesi için kullanılan güçlü bir pakettir. Özellikleri ve önemli noktaları şunlardır:
Değişken Grafik Oluşturma: ggplot2, değişkenler arasındaki ilişkileri görselleştirmek için kullanılır. Veri çerçevelerinden veri noktalarını, çizgileri veya barları çizmek için kullanılabilir.
Estetik Kontrol: Grafiklerin estetik özelliklerini (örneğin renk, boyut, şekil) belirleme konusunda esneklik sağlar. Bu, kullanıcıların grafiklerin görünümünü özelleştirmesine olanak tanır.
Katmanlı Grafik Oluşturma: ggplot2, grafiklerde katmanlar oluşturmayı sağlar. Bu, kullanıcıların aynı grafik üzerinde farklı veri türlerini veya katmanları bir araya getirmesine izin verir.
Uyumlu ve Okunabilir Kodlama Stili: ggplot2, basit ve tutarlı bir kodlama stili sunar. Bu, kullanıcıların kolayca anlaşılabilir ve bakımı yapılabilir kodlar yazmasına olanak tanır.
Geniş Veri Formatı Desteği: ggplot2, çeşitli veri formatlarını (örneğin veri çerçeveleri, matrisler) destekler. Bu, kullanıcıların farklı veri kaynaklarından gelen verileri kolayca görselleştirmesini sağlar.
Örnek 3 (dpylr)
dplyr, R programlama dilinde veri manipülasyonu ve işleme için kullanılan bir pakettir. İşte dplyr paketinin önemli özellikleri:
Tidy Veri İşleme: dplyr, veri çerçevelerinde temiz ve düzenli veri işleme işlemleri gerçekleştirmek için tasarlanmıştır. Bu, veri analizi süreçlerini daha anlaşılır ve etkili hale getirir.
Basit ve Tutumlu Sözdizimi: dplyr, sade ve tutarlı bir sözdizim sunar. Bu, kullanıcıların karmaşık veri işleme işlemlerini daha kolay anlamasını ve yazmasını sağlar.
Filtreleme ve Seçme: Veri çerçevelerinden belirli satırları filtreleme veya sütunları seçme işlemlerini basitleştirir. Bu, kullanıcıların belirli veri alt kümeleri üzerinde çalışmasını kolaylaştırır.
Toplama ve Gruplama: dplyr, veri çerçevelerini belirli kriterlere göre gruplama ve toplama işlemlerini kolaylaştırır. Bu, veri analizi sırasında toplu işlemlerin yapılmasını sağlar.
Veri Birleştirme: dplyr, veri çerçevelerini birleştirme işlemlerini basitleştirir. Örneğin, sütunlar arasında birleştirme (join) işlemleri yapmak için kullanılabilir.
Örnek 4 (readr)
readr, R programlama dilinde veri okuma ve yazma işlemleri için kullanılan bir pakettir. Bu paket, çeşitli veri formatlarındaki dosyaları okumak ve R’de kullanılabilir veri yapılarına dönüştürmek için tasarlanmıştır. İşte readr paketinin önemli özellikleri:
Hızlı ve Verimli: readr, veri dosyalarını hızlı bir şekilde okumak ve veri çerçevelerine dönüştürmek için optimize edilmiştir. Bu, büyük veri setleriyle çalışırken performansın artmasını sağlar.
Basit Kullanım: Paket, sade bir arayüz sağlar ve veri dosyalarını okumak için kolay ve anlaşılır işlevler sunar. Bu, kullanıcıların veri okuma işlemlerini hızlı ve verimli bir şekilde gerçekleştirmesini sağlar.
Çeşitli Veri Formatları Desteği: readr, CSV, TSV ve diğer metin tabanlı dosya formatlarının yanı sıra Excel, SPSS ve SAS gibi popüler veri formatlarını da destekler.
Örnek 5(WDİ)
WDI paketi, Dünya Bankası’nın kapsamlı Dünya Kalkınma Göstergeleri (WDI) veri deposuna erişimi kolaylaştıran güçlü bir araçtır.
Önem:
Dünya Bankası’nın “World Development Indicators” (Dünya Kalkınma Göstergeleri) veri seti, küresel çapta kalkınma göstergelerini içeren kapsamlı bir veri kaynağıdır. Bu veri seti, bir ülkenin ekonomik, sosyal ve çevresel kalkınmasıyla ilgili birçok önemli göstergeyi içerir. “WDI” paketi, R programlama dilinde bu veri setini işlemek ve analiz etmek için özel olarak oluşturulmuştur. “WDI” paketinin önemi şunlardır:
Küresel Kalkınma Analizi: “WDI” paketi, Dünya Bankası’nın kalkınma göstergeleri veri setine erişim sağlar. Bu, araştırmacıların ve analistlerin küresel kalkınma eğilimlerini ve desenlerini analiz etmesine olanak tanır.
Karar Verme Süreçlerine Destek: Dünya Bankası veri seti, hükümetler, uluslararası kuruluşlar, sivil toplum kuruluşları ve özel sektör gibi paydaşların karar verme süreçlerine destek sağlar. Özellikle, kalkınma projeleri, politika oluşturma ve kaynak tahsisi gibi alanlarda veriye dayalı kararlar almak için kullanılabilir.
Araştırma ve Akademik Çalışmalar: “WDI” paketi, araştırmacılar ve akademisyenler için önemli bir veri kaynağıdır. Bu veri seti, ekonomik ve sosyal kalkınma ile ilgili çalışmaların yapılmasına olanak tanır ve akademik literatüre katkıda bulunur.
Temel Özellikleri:
Veri Keşfi: Paket, kullanıcılara Dünya Bankası’nın veri setindeki çeşitli göstergeleri keşfetme ve arama olanağı sunar. Bu, kullanıcıların ilgili veriye kolayca erişmesini sağlar.
Veri Temizleme ve Hazırlık: “WDI” paketi, Dünya Bankası veri setini R’de kullanıma uygun hale getirmek için işlevler sağlar. Bu, veri setindeki eksik değerleri doldurma, sütunları seçme veya filtreleme gibi işlemleri gerçekleştirmeyi kolaylaştırır.
Veri Analizi ve Görselleştirme: Paket, Dünya Bankası’nın kalkınma göstergeleri veri seti üzerinde analizler yapmak ve görselleştirmek için çeşitli işlevler sağlar. Bu, veri setindeki desenleri, eğilimleri ve ilişkileri keşfetmeyi kolaylaştırır.
Veri <- WDI(country = "all", indicator = c('NY.GDP.MKTP.CD', "SP.POP.TOTL", "NY.GDP.DEFL.KD.ZG"), start = 2000, end=2020)
NY.GDP.PCAP.CD SP.POP.TOTL NY.GDP.DEFL.KD.ZG
describe_all(Veri)
## # A tibble: 7 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 country chr 0 0 266 NA NA NA
## 2 iso2c chr 0 0 266 NA NA NA
## 3 iso3c chr 0 0 262 NA NA NA
## 4 year int 0 0 21 2000 2.01e 3 2.02e 3
## 5 NY.GDP.MKTP.CD dbl 211 3.8 5340 13964732. 2.00e12 8.78e13
## 6 SP.POP.TOTL dbl 21 0.4 5521 9609 2.82e 8 7.82e 9
## 7 NY.GDP.DEFL.KD.ZG dbl 284 5.1 4740 -30.2 6.6 e 0 2.63e 3
ekstra_veri <- WDI_data$country
data_extra <- left_join(Veri, ekstra_veri)
## Joining with `by = join_by(country, iso2c, iso3c)`
data_extra <- data_extra %>% filter(income != "Aggregates")
data_extra %>% describe_all()
## # A tibble: 13 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 country chr 0 0 215 NA NA NA
## 2 iso2c chr 0 0 215 NA NA NA
## 3 iso3c chr 0 0 215 NA NA NA
## 4 year int 0 0 21 2000 2.01e 3 2.02e 3
## 5 NY.GDP.MKTP.CD dbl 190 4.2 4326 13964732. 3.04e11 2.14e13
## 6 SP.POP.TOTL dbl 0 0 4512 9609 3.19e 7 1.41e 9
## 7 NY.GDP.DEFL.KD.ZG dbl 263 5.8 4253 -30.2 7.07e 0 2.63e 3
## 8 region chr 0 0 7 NA NA NA
## 9 capital chr 0 0 210 NA NA NA
## 10 longitude chr 0 0 210 NA NA NA
## 11 latitude chr 0 0 210 NA NA NA
## 12 income chr 0 0 5 NA NA NA
## 13 lending chr 0 0 4 NA NA NA
eksik_veriler <- data_extra[is.na(data_extra$NY.GDP.MKTP.CD),]
kayip_degerler <- data_extra %>% group_by(country) %>%
summarise(kayip = sum(is.na(NY.GDP.MKTP.CD)))
Veri <- left_join(data_extra, kayip_degerler)
## Joining with `by = join_by(country)`
Veri <- Veri %>% filter (kayip < 1)
describe_all(Veri)
## # A tibble: 14 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 country chr 0 0 193 NA NA NA
## 2 iso2c chr 0 0 193 NA NA NA
## 3 iso3c chr 0 0 193 NA NA NA
## 4 year int 0 0 21 2000 2.01e 3 2.02e 3
## 5 NY.GDP.MKTP.CD dbl 0 0 4053 13964732. 3.24e11 2.14e13
## 6 SP.POP.TOTL dbl 0 0 4051 9609 3.48e 7 1.41e 9
## 7 NY.GDP.DEFL.KD.ZG dbl 56 1.4 3998 -30.2 7.09e 0 2.63e 3
## 8 region chr 0 0 7 NA NA NA
## 9 capital chr 0 0 190 NA NA NA
## 10 longitude chr 0 0 193 NA NA NA
## 11 latitude chr 0 0 193 NA NA NA
## 12 income chr 0 0 4 NA NA NA
## 13 lending chr 0 0 4 NA NA NA
## 14 kayip int 0 0 1 0 0 0
eksik_veriler_enf <- data_extra[is.na(data_extra$NY.GDP.DEFL.KD.ZG),]
kayip_degerler_enf <- data_extra %>% group_by(country) %>%
summarise(kayip = sum(is.na(NY.GDP.DEFL.KD.ZG )))
Veri <- left_join(data_extra, kayip_degerler_enf)
## Joining with `by = join_by(country)`
Veri <- Veri %>% filter (kayip < 1)
describe_all(Veri)
## # A tibble: 14 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 country chr 0 0 184 NA NA NA
## 2 iso2c chr 0 0 184 NA NA NA
## 3 iso3c chr 0 0 184 NA NA NA
## 4 year int 0 0 21 2000 2.01e 3 2.02e 3
## 5 NY.GDP.MKTP.CD dbl 0 0 3864 13964732. 3.39e11 2.14e13
## 6 SP.POP.TOTL dbl 0 0 3862 9609 3.65e 7 1.41e 9
## 7 NY.GDP.DEFL.KD.ZG dbl 0 0 3864 -30.2 7.22e 0 2.63e 3
## 8 region chr 0 0 7 NA NA NA
## 9 capital chr 0 0 181 NA NA NA
## 10 longitude chr 0 0 184 NA NA NA
## 11 latitude chr 0 0 184 NA NA NA
## 12 income chr 0 0 4 NA NA NA
## 13 lending chr 0 0 4 NA NA NA
## 14 kayip int 0 0 1 0 0 0
data_norvec <- Veri %>% filter(iso2c == "NO")
ggplot(data_norvec, aes(x=year, y=NY.GDP.DEFL.KD.ZG))+
geom_line(colour = "Blue")+
labs(title = "2020-2020 tarihleri arasında norveçte enflasyon oranları", x="Yıl", y="Kişi başına gelir") +
scale_y_continuous(labels = scales::comma)
data_2019 <- Veri %>% filter(year==2019)
ggplot(data_2019, aes(x=SP.POP.TOTL, y=NY.GDP.DEFL.KD.ZG, label=iso2c, colour=region)) +
geom_point(position = "jitter") +
geom_text()
Tüm verileri ayna anda göremediğimden dolayı 100 milyondan fazla nüfüsü
olanlara ayrı az olanlara ayrı baktım
data_100fz <- data_2019 %>% filter(SP.POP.TOTL > 100000000)
ggplot(data_100fz, aes(x=SP.POP.TOTL, y=NY.GDP.DEFL.KD.ZG, label=iso2c, colour=region)) +
geom_point() +
geom_text() +
labs(title = "2019'e göre ülkelerın enflasyon oranları", x="Nüfüs", y="Enflasyon oranları") +
scale_x_continuous(labels = scales::comma)
2019’de 100mlnden fazla olan ülkeler içinde En yüksek enflasyon oranına
sahıp ülkeler mısır ve efyopyadır
data_100az <- data_2019 %>% filter(SP.POP.TOTL < 100000000)
ggplot(data_100az, aes(x=SP.POP.TOTL, y=NY.GDP.DEFL.KD.ZG, label=iso2c, colour=region)) +
geom_point() +
geom_text() +
labs(title = "2019'e göre enflasyon oranları (100mlnden az)", x="Nüfüs", y="Enflasyon oranı") +
scale_x_continuous(labels = scales::comma)
2019’de 100mlnden az olan ülkeler içinde En yüksek enflasyon oranına sahıp ülkeler zimbabye ve sudandır
Toplam dunya nufusu , Toplam dünya üretimi, her sene için dünya kişi başi ne kadar üretim yapmış
world_data <- Veri %>%
group_by(year) %>%
summarise(dunyanufusu = sum(SP.POP.TOTL),
dunyauretimi= sum(NY.GDP.MKTP.CD),
kisibasina = sum(dunyauretimi/dunyanufusu))
ggplot(world_data, aes(x=year,y=dunyauretimi))+
geom_line()+
scale_y_continuous(labels = scales::comma)
ggplot(world_data, aes(x=year,y=kisibasina, colour="brown"))+
geom_line()+
scale_y_continuous(labels = scales::comma)+
labs(title = "2000-2022 kişi başı üretim",
x="Yil", y="kişi başına üretim") +
theme_classic()
Veri <- left_join(Veri, world_data, by="year")
Belirli bir ülkenin o sene için üretimdeki payı nedir?
Belirli bir ülkenin nüfüstaki payı nedir?
Ülkenin senelik veremi nedir?
Veri <- Veri %>% mutate(ulkeninuretimorani = (NY.GDP.MKTP.CD )/dunyauretimi,
populyasyonorani = SP.POP.TOTL/dunyanufusu,
verim = ulkeninuretimorani/populyasyonorani)
ggplot(Veri[3571:3591 , ], aes(x=year,y=verim))+
geom_line()+
labs(title = "yıllara göre Türkiyenın Verim katsayısı")
data_turkey <- Veri %>% filter (iso2c == "TR")
ggplot(data_turkey, aes(x=year, y=populyasyonorani))+
geom_line(colour = "Blue")
ggplot(data_turkey, aes(x=year, y=ulkeninuretimorani))+
geom_line(colour = "Blue")
data_2016 <- Veri %>% filter(year==2016)
ggplot(data_2016, aes(x=verim, y=NY.GDP.DEFL.KD.ZG, label=iso2c, colour=region)) +
geom_point(position = "jitter") +
geom_text()
Veri sayılarını azaltmak için rastgele olarak 40 ülke seçtim ve tekrar
grafiklerını baktım bünün için sample_n fonksiyonunu kullandım
data_2016_40 <- data_2016 %>% sample_n(40)
ggplot(data_2016_40, aes(x=verim, y=NY.GDP.DEFL.KD.ZG, label=iso2c, colour=region)) +
geom_point(position = "jitter") +
geom_text()+
labs(title="Enlasyon ve verim arasındakı ilişki", Y="enflasyon oranı")+
geom_hline(yintercept = 5)+
geom_vline(xintercept = 1)
Özet:Verim katsayısı yüksek olan ülkelerde enflasyon oranları %5 altında hatta deflasyon görülebilir. Yanı Verim arttıka enflasyon düşmektedir.Enflasyon ile verim arasında ters ilişkı vardır.
library(readxl)
## Warning: package 'readxl' was built under R version 4.3.2
pwt1001 <- read_excel("pwt1001.xlsx", sheet = "Data")
pwt1001 <- pwt1001 %>% filter(year>1999)
hc_vr <- left_join(Veri,pwt1001)
## Joining with `by = join_by(country, year)`
describe_all(hc_vr)
## # A tibble: 22 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 country chr 0 0 184 NA NA NA
## 2 iso2c chr 0 0 184 NA NA NA
## 3 iso3c chr 0 0 184 NA NA NA
## 4 year dbl 0 0 21 2000 2.01e 3 2.02e 3
## 5 NY.GDP.MKTP.CD dbl 0 0 3864 13964732. 3.39e11 2.14e13
## 6 SP.POP.TOTL dbl 0 0 3862 9609 3.65e 7 1.41e 9
## 7 NY.GDP.DEFL.KD.ZG dbl 0 0 3864 -30.2 7.22e 0 2.63e 3
## 8 region chr 0 0 7 NA NA NA
## 9 capital chr 0 0 181 NA NA NA
## 10 longitude chr 0 0 184 NA NA NA
## # ℹ 12 more rows
hc_vr <- hc_vr %>%
select(-countrycode)
hc_vr <- na.omit(hc_vr)
describe_all(hc_vr)
## # A tibble: 21 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 country chr 0 0 122 NA NA NA
## 2 iso2c chr 0 0 122 NA NA NA
## 3 iso3c chr 0 0 122 NA NA NA
## 4 year dbl 0 0 20 2000 2.01e 3 2.02e 3
## 5 NY.GDP.MKTP.CD dbl 0 0 2440 624337145. 4.74e11 2.14e13
## 6 SP.POP.TOTL dbl 0 0 2439 240406 4.98e 7 1.41e 9
## 7 NY.GDP.DEFL.KD.ZG dbl 0 0 2440 -30.2 6.6 e 0 4.18e 2
## 8 region chr 0 0 7 NA NA NA
## 9 capital chr 0 0 122 NA NA NA
## 10 longitude chr 0 0 122 NA NA NA
## # ℹ 11 more rows
hc_vr_2018 <- hc_vr %>% filter(year ==2018)
hc_vr_30 <- hc_vr_2018 %>%
sample_n(30)
ggplot(hc_vr_30, aes(x=verim, y=hc, label=iso2c, colour=region)) +
geom_point(position = "jitter") +
geom_text()+
labs(title="insani sermaye ve verim arasında ilişki", y="insani sermaye")+
geom_hline(yintercept = 1)+
geom_vline(xintercept = 1)
Grafik Özeti: İnsan sermayesi 2ve3 ten büyük olan ülkelerin genellikle Verimi büyük oluyor.Verim ve insani sermaye arasında pozitif bir ilişki var(her zaman geçerli değil)