VİZE ÖDEVİ

R ve R Studyo nedir?

R: R, açık kaynaklı bir programlama dili ve çevre birimidir. İstatistiksel hesaplamalar yapmak, veri analizi yapmak, grafikler oluşturmak ve veri manipülasyonu gibi birçok istatistiksel ve matematiksel işlemi gerçekleştirmek için kullanılır. Araştırmacılar, veri bilimcileri, istatistikçiler ve analitik uzmanlar tarafından yaygın olarak kullanılmaktadır.

R Studio: R Studio, R programlama dili için entegre geliştirme ortamıdır (IDE). R Studio, R kodunu yazmak, çalıştırmak, hata ayıklamak, veri görselleştirmek ve projeleri yönetmek için kullanılır. R Studio, R dilindeki geliştirme sürecini daha verimli hale getirmek için bir dizi araç ve özellik sunar.

R STUDYODAKİ PAKETLER NEDİR?

R Studio’daki paketler, R dilinde farklı işlevlere sahip olan ve genellikle belirli bir konuda uzmanlaşmış olan ek fonksiyon ve araçların bir koleksiyonudur. Bu paketler, kullanıcıların belirli görevleri daha verimli bir şekilde gerçekleştirmesine olanak tanır.

R STUDYODAKİ PAKETLERİN ÖNEMİ?

R Studio’daki paketler, R dilinin işlevselliğini genişletir ve çeşitli analitik görevler için özelleştirilmiş araçlar sunar. Bu paketler, veri işleme, görselleştirme, makine öğrenimi ve daha fazlası için kullanıcıların işlerini daha verimli bir şekilde yapmalarını sağlar. Ayrıca, sürekli olarak güncellenen ve genişleyen bir topluluğun katkılarıyla yenilikçi ve esnek çözümler sunarlar.

R PAKETLERİNE NASIL ERİŞİLİR?

R paketlerine erişmek için şu adımları izleyebilirsiniz:

Paket Kurulumu: İlk olarak, R Studio’ya ihtiyacınız olacak. Ardından, istediğiniz paketi kurmak için install.packages(“paket_adi”) komutunu kullanabilirsiniz. Örneğin, “ggplot2” paketini kurmak için install.packages(“ggplot2”) komutunu kullanabilirsiniz.

Kütüphane Yükleme: Paketi kurduktan sonra, kullanmak istediğiniz her bir oturumda paketi yüklemeniz gerekecek. Bunun için, library(paket_adi) komutunu kullanarak paketi yükleyebilirsiniz. Örneğin, “ggplot2” paketini yüklemek için library(ggplot2) komutunu kullanabilirsiniz.

R PAKET ÖRNEKLERİ (5)

ÖRNEK 1 (gglot)

ggplot2’nin temel özellikleri şunlardır:

Katmanlar: ggplot2, grafikleri oluşturmak için katmanlar kullanır. Her bir katman, veri setinin görselleştirilmesi için gerekli bileşenleri içerir. Bu, grafiklerin kolayca özelleştirilebilmesini sağlar.

Estetik Haritalama: ggplot2, veri özelliklerini grafik estetikleriyle (renk, boyut, şekil vb.) eşleştirmek için estetik haritalama kullanır. Bu, veri setindeki farklı değişkenler arasındaki ilişkileri görselleştirmeyi kolaylaştırır.

Ölçekler ve Koordinatlar: ggplot2, grafiklerin ölçeklerini (örneğin, eksenlerin aralıkları) ve koordinat sistemlerini (örneğin, düzlem, polar koordinatlar) özelleştirmek için esnek bir yapı sağlar.

Temalar: ggplot2, grafiklerin görünümünü kontrol etmek için temaları kullanır. Temalar, grafiklerin renkleri, çizgi stilleri, arka planlar ve diğer görsel öğelerini ayarlamak için kullanılabilir.

örnek 2(dplyr)

dplyr paketinin bazı temel özellikleri şunlardır:

Veri Seti İşlemleri: dplyr, veri tablolarını (data frames) filtreleme, seçme, dönüştürme, özetleme ve birleştirme gibi işlemleri gerçekleştirmek için kullanılır. Bu işlemler, veri setinin alt kümesini seçmek veya dönüştürmek gibi genellikle tekrarlanan görevleri basitleştirir.

Piping (%>%) Operatörü: dplyr, veri işleme zincirlerini (data pipelines) oluşturmak için yaygın olarak kullanılan piping operatörünü destekler. Bu operatör, bir işlemin çıktısını bir sonraki işlemin girişi olarak kullanarak kodun daha okunabilir ve modüler olmasını sağlar.

Kolon (Sütun) İsimleriyle Çalışma: dplyr, kolonları kolon isimleriyle çağırarak veri tablolarında çalışmayı kolaylaştırır. Bu, kolon indeksleriyle uğraşmak yerine daha anlamlı isimler kullanarak kodun daha anlaşılır olmasını sağlar.

Gruplama ve Toplama: dplyr, veri tablolarını belirli bir değişken veya değişkenlerin gruplarına göre toplama (summarization) işlemleri gerçekleştirmek için kullanılır. Bu, veri setinin özelliklerini daha derinlemesine incelemek ve gruplar arasındaki farklılıkları anlamak için kullanışlıdır.

Veri Seti Birleştirme: dplyr, veri tablolarını birleştirme işlemleri için çeşitli fonksiyonlar sağlar. Bu, farklı kaynaklardan gelen veri setlerini birleştirmek veya ilişkili verileri bir araya getirmek için kullanılır.

örnek 3 (tidyr)

tidyr paketinin temel özellikleri şunlardır:

Veri Seti Yeniden Şekillendirme: tidyr, veri setlerini farklı formatlara dönüştürmek için kullanılır. Özellikle geniş formatlı veri setlerini dar formatlı veri setlerine dönüştürmek için kullanışlıdır. Bu, veri setlerinin analiz için daha uygun hale getirilmesini sağlar.

Bozuk Veri Düzeltme: tidyr, bozuk veri setlerindeki eksik değerleri, tekrar eden gözlemleri veya diğer yapısızlık sorunlarını ele almak için kullanılır. Bu, veri setlerinin daha temiz ve analiz edilebilir hale getirilmesine yardımcı olur.

Veri Seti Ayırma ve Birleştirme: tidyr, tek bir kolon içinde birden çok değeri içeren veri setlerini ayrıştırmak veya farklı kolonlarda bulunan değerleri birleştirmek için kullanılır. Bu, veri setlerinin yapısal olarak yeniden düzenlenmesini sağlar.

Veri Seti İndirgeme: tidyr, geniş formatlı veri setlerindeki tekrarlanan bilgileri indirgeyerek veri setlerini daha özlü hale getirmek için kullanılır. Bu, veri setlerinin daha az bellek kullanmasına ve analiz süreçlerinin hızlanmasına yardımcı olur.

örnek 4(stringr)

stringr paketinin bazı temel özellikleri şunlardır:

Metin Dizilerini Arama ve Değiştirme: stringr, metin dizilerinde belirli desenleri arama ve değiştirme işlemleri için kullanılır. Örneğin, belirli bir kelimeyi veya karakter dizisini metin içinde aramak veya değiştirmek için kullanılabilir.

Metin Dizilerini Ayıklama: stringr, metin dizilerinden belirli öğeleri ayıklama ve bunları yeni bir metin dizisi olarak döndürme işlemleri için kullanılır. Örneğin, bir metin dizisinden sayıları veya belirli bir desene uyan öğeleri ayıklamak için kullanılabilir.

Metin Dizilerini Bölme ve Birleştirme: stringr, metin dizilerini belirli bir desene göre bölme ve parçalama işlemleri için kullanılır. Ayrıca, farklı metin dizilerini birleştirme ve bir araya getirme işlemleri için de kullanılabilir.

Metin Dizilerini Biçimlendirme: stringr, metin dizilerini biçimlendirme ve düzenleme işlemleri için kullanılır. Örneğin, metin dizilerini büyük harfe veya küçük harfe dönüştürmek veya başka bir biçimlendirme işlemi uygulamak için kullanılabilir.

örnek 5 (WDİ)

WDI (World Development Indicators), Dünya Bankası tarafından sağlanan bir veri tabanıdır ve dünya çapındaki ekonomik, sosyal ve çevresel göstergeleri içerir. WDI’nın temel özellikleri şunlardır:

Geniş Kapsam: WDI, çeşitli ekonomik, sosyal ve çevresel göstergeleri kapsar. Bu göstergeler arasında milli gelir, işsizlik oranı, eğitim seviyeleri, sağlık göstergeleri, enerji tüketimi, çevre kirliliği ve daha birçok faktör bulunur.

Uzun Süreli Veri Setleri: WDI, birçok gösterge için uzun süreli veri setleri sağlar. Bu, kullanıcıların zaman içindeki trendleri analiz etmelerine ve uzun vadeli eğilimleri belirlemelerine olanak tanır.

Uluslararası Karşılaştırma: WDI, farklı ülkeler arasında karşılaştırmalar yapılmasını sağlar. Bu, kullanıcıların farklı ülkelerin ekonomik, sosyal ve çevresel performanslarını değerlendirmelerine ve karşılaştırmalar yapmalarına olanak tanır.

Kolay Erişim: WDI, genellikle çevrimiçi bir veritabanı olarak sunulur ve kolayca erişilebilir. Dünya Bankası’nın resmi web sitesi üzerinden erişilebilir ve çeşitli araçlarla verilere erişim sağlanabilir.

WDI’nın kullanımı oldukça basittir. Kullanıcılar, çevrimiçi veritabanına erişerek istedikleri göstergeleri ve ülkeleri seçebilirler. Ardından, seçilen göstergelerin zaman içindeki değişimini gösteren grafikler oluşturabilir, verileri indirebilir ve analiz edebilirler. Bu şekilde, WDI kullanıcıları dünya çapındaki ekonomik, sosyal ve çevresel trendleri anlamak ve analiz etmek için önemli bir kaynak elde ederler.

PAKET YÜKLEME

library(WDI)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.0     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.1
## ✔ purrr     1.0.2     
## ── 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(dplyr)
library(ggplot2)
library(explore)

Gerekli olan paketleri yükledim.

VERİYİ YÜKLEME VE İŞLEME

Data <- WDI(country = "all", indicator = c("SM.POP.NETM","SP.POP.TOTL","NY.GDP.MKTP.CD"),start = 2000,end = 2020)

SM.POP.NETM (net göç alımı) SP.POP.TOTL (nufüs) NY.GDP.MKTP.CD (gsyh)

describe_all(Data)
## # 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 SM.POP.NETM    dbl      21    0.4   5141 -5955151  -7.79e 4  5.82e 6
## 6 SP.POP.TOTL    dbl      21    0.4   5521     9609   2.82e 8  7.82e 9
## 7 NY.GDP.MKTP.CD dbl     211    3.8   5340 13964732.  2.00e12  8.78e13
ekstra_data <- WDI_data$country
data_extra <-  left_join(Data, ekstra_data)
## 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          2010   2.02e 3
##  5 SM.POP.NETM    dbl       0    0     4156 -2290411           158.  1.48e 6
##  6 SP.POP.TOTL    dbl       0    0     4512     9609      31892124.  1.41e 9
##  7 NY.GDP.MKTP.CD dbl     190    4.2   4326 13964732. 304478744887.  2.14e13
##  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)))
Data <- left_join(data_extra, kayip_degerler)
## Joining with `by = join_by(country)`
Data <- Data %>%  filter (kayip < 1)
describe_all(Data)
## # 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          2010   2.02e 3
##  5 SM.POP.NETM    dbl       0      0   3783 -2290411          1978.  1.48e 6
##  6 SP.POP.TOTL    dbl       0      0   4051     9609      34833429.  1.41e 9
##  7 NY.GDP.MKTP.CD dbl       0      0   4053 13964732. 323643664482.  2.14e13
##  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

Veriler analiz yapmaya hazır

Bireysel Ülke seçimi ve grafik çizimi

amerika <- Data %>% filter(iso2c == "US")
ggplot(amerika, aes(x=year,y=SM.POP.NETM))+
  geom_line(colour="red")+
  labs(title="2000-2020 ye kadar abd göç alımı")

#### sene seçimi

Data_2015 <- Data %>% filter(year==2015)
ggplot(Data_2015,aes(x=SP.POP.TOTL,y=SM.POP.NETM, label = iso2c,colour = region)) + 
  geom_point() +
    geom_text()

veriler fazla olduğu için sadece fazla göç alan ülkeleri almak istiyorum

Data_2015_y <- Data_2015 %>% filter(SM.POP.NETM > 75000)
ggplot(Data_2015_y,aes(x=SP.POP.TOTL,y=SM.POP.NETM, label = iso2c,colour = region)) + 
  geom_point() +
    geom_text()

dünya toplam üretimi bulma

world_data <- Data %>% 
  group_by(year) %>%
  summarise(nufus = sum(SP.POP.TOTL),
            uretim= sum(NY.GDP.MKTP.CD),
            kisibasina = sum(uretim/nufus))
ggplot(world_data, aes(x=year,y=uretim))+
  geom_line()+
  scale_y_continuous(labels = scales::comma)+
  labs(title="2000-2020 Arasında dünya toplam üretimi")

ggplot(world_data, aes(x=year,y=kisibasina, colour="red"))+
  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()

Data <- left_join(Data, world_data, by="year")

Ülkelerin Payları

Belirli bir ülkenin o sene için üretimdeki payı nedir?

Belirli bir ülkenin nüfüstaki payı nedir?

Ülkenin senelik veremi nedir?

Verim ile göç alımı arasında nasıl bir ilişki var

mutate

Data <- Data %>% mutate(ulkeninuretimorani = (NY.GDP.MKTP.CD    )/uretim,
                        populyasyonorani = SP.POP.TOTL/nufus,
                        verim = ulkeninuretimorani/populyasyonorani)
ggplot(Data[3907:3927 , ], aes(x=year,y=verim))+
  geom_line()+
labs(title = "2000-2020 yılları arasında Abd'nin verim katsayısı")

ggplot(Data[3907:3927 , ], aes(x=year,y=populyasyonorani))+
  geom_line()+
labs(title = "2000-2020 yılları arasında Abd'nin dünyadakı populasyon  oranı")

ggplot(Data[3907:3927 , ], aes(x=year,y=ulkeninuretimorani))+
  geom_line()+
labs(title = "2000-2020 yılları arasında Abd'nin dünyadakı üretim  orani")

Net göç alımı ve Verim

Data_2000 <- Data %>% filter(year==2000)
ggplot(Data_2000,aes(x=SM.POP.NETM,y=verim, label = iso2c,colour = region)) + 
  geom_point() +
    geom_text()+
  geom_hline(yintercept = 1)+
  theme_classic()

Ülke sayısını azaltmak için Sadece avrupa ve merkezi asya kıtasına bakmak istiyorum

Data_2000_eu <- Data_2000 %>% filter(region == "Europe & Central Asia")
ggplot(Data_2000_eu,aes(x=SM.POP.NETM,y=verim, label = iso2c,colour = region)) + 
  geom_point() +
    geom_text()+
  geom_hline(yintercept = 1)+
  scale_x_continuous(labels = scales::comma)+
 theme_classic()+
  labs(title="Net göç alımı ve Verim arasındakı ilişkı",x="Net göç alımı", y="Verim")

Verimi 1 den düsük olan ülkelerde net göç alımı 0’e yakın hatta negatif yani ülke vatandaşları farklı ülkelere göç etmiş. Ülkelerın Verimi ne kadar büyükse ülkeleye giren net göç alımı o kadar artıyor. Verim katsayısı ve Net goç alımı arasında pozitif bir ilişki var.

Kişi başına gelir ve Verim arasındakı ilişki

ggplot(Data_2000_eu,aes(x=NY.GDP.MKTP.CD/SP.POP.TOTL,y=verim, label = iso2c,colour = region)) + 
  geom_point() +
    geom_text()+
  geom_hline(yintercept = 1)+
  scale_x_continuous(labels = scales::comma)+
 theme_classic()+
  labs(title="Kişi başına gelir ve Verim arasındakı ilişki",x="KBG", y="Verim")

Verimi 1 den büyük olan ülkeler Genellikle kişi başına geliri verim arttikca artiyor. Verim kişi başına gelır arasında doğrusal bir ilişki var.