MERT BURAK YILMAZ 2210504305

R ve R Studyo nedir?

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.

paket

R’da birçok işlevsellik, özellik ve algoritma özel amaçlı paketler aracılığıyla sağlanır.CRAN (Comprehensive R Archive Network) ve diğer kaynaklar üzerinden binlerce paket indirilebilir. İşte R’da popüler bazı paketler ve bu paketlerin sunduğu temel özelliklein değeridir.

paketlerin öenmi

R’da paketler, dilin temel işlevselliğini genişletmek ve özelleştirmek için kullanılır. Paketlerin önemi birkaç ana nedenden kaynaklanmaktadır: Fonksiyonel Genişletme: R’ın temel dilinde bulunan fonksiyonların yanı sıra, paketler yeni ve özelleştirilmiş fonksiyonlar ekler. Bu, kullanıcıların daha spesifik ve karmaşık analizler yapabilmesini sağlar. Veri Görselleştirme ve Analiz: ggplot2 gibi paketler sayesinde R, yüksek kaliteli ve özelleştirilebilir grafikler oluşturabilir. Bu grafikler, veri analizinin ve sonuçların görsel olarak temsil edilmesinde kritik öneme sahiptir. Veri Manipülasyonu ve Temizleme: dplyr, tidyr gibi paketler, veri temizleme, dönüştürme ve manipülasyon işlemlerini kolaylaştırır. Bu, veri bilimi ve analiz projelerinde veri hazırlığı aşamasını hızlandırır ve basitleştirir. Özel Amaçlı Analiz ve Modelleme: Paketler, zaman serisi analizi, makine öğrenimi, doğrusal ve doğrusal olmayan modeller gibi özel analizler ve modellemeler için özel fonksiyonlar ve algoritmalar sağlar. Kod Tekrarını Azaltma: Paketler, tekrar tekrar kullanılan kod parçalarını ve işlemleri içerir. Bu, kodun yeniden kullanılabilirliğini artırır ve yazma süresini azaltır. Topluluk Katkısı: Açık kaynaklı bir doğaya sahip olan R paketleri, geniş bir kullanıcı topluluğu tarafından sürekli olarak geliştirilir ve güncellenir. Bu, kullanıcıların en son yöntemleri, teknikleri ve araçları kullanarak projelerini gerçekleştirmesini sağlar.

paket kurulumu ve etkinleştirme

R’da paketlere erişme ve yükleme yöntemleri:

CRAN (Comprehensive R Archive Network) Üzerinden Erişim: CRAN, R paketlerinin ana dağıtım noktasıdır. R’da bir paketi CRAN üzerinden erişmek ve yüklemek için şu adımları izleyebilirsiniz:

Paket Yükleme: install.packages() fonksiyonunu kullanarak bir paketi yükleyebilirsiniz.

install.packages(“ggplot2”) Paket Kullanımı: Paketi yükledikten sonra library() fonksiyonuyla yüklenen paketi kullanabilirsiniz.

library(ggplot2) GitHub Üzerinden Erişim: Bazı R paketleri, geliştirme aşamasında oldukları için CRAN’da bulunmayabilir. Bu tür paketlere GitHub üzerinden erişebilirsiniz: Paket Yükleme: devtools paketini kullanarak GitHub’dan bir paketi yükleyebilirsiniz.

install.packages(“devtools”) devtools::install_github(“kullanici_adi/paket_adi”) Paket Kullanımı: Paketi yükledikten sonra library() fonksiyonuyla yüklenen paketi kullanabilirsiniz.

library(paket_adi) Diğer Kaynaklar: Bazı özel amaçlı ve geniş kapsamlı R paketleri, CRAN veya GitHub dışında farklı kaynaklarda bulunabilir. Bu tür paketleri yüklemek için genellikle paketin belgelendirmesinde veya web sitesinde belirtilen özel yönergeleri takip etmelisiniz. Notlar: R paketlerini yüklerken internet bağlantınızın olması gerekmektedir. install.packages() fonksiyonunu kullanarak birden fazla paketi aynı anda yükleyebilirsiniz. Örneğin: install.packages(c(“ggplot2”, “dplyr”)) Bu yöntemler sayesinde R paketlerine erişebilir, yükleyebilir ve kullanabilirsiniz. Yükleme işlemi genellikle otomatik olarak yapılır ve gerekli bağımlılıklar da dahil edilir.

örnek paketler

markdown

Bu bir R Markdown örneğidir. Aşağıda bir R kodu örneği bulunmaktadır. summary(mtcars) markdown Dokümanın Derlenmesi**: R Markdown dosyasını derlemek için Knit butonuna tıklayabilirsiniz. Bu işlem, R kodunu çalıştırır,

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.

purrr

paketinde Bulunan Temel Fonksiyonlar: map(): Bir vektör, liste veya veri çerçevesi üzerinde belirtilen işlevi uygular ve sonuçları liste olarak döndürür.

library(purrr)

Örnek bir vektör numbers <- c(1, 2, 3, 4, 5)

Karekökünü al sqrt_numbers <- map(numbers, sqrt) print(sqrt_numbers) map2(): İki vektör veya liste üzerinde belirtilen işlevi uygular.

stringr

R’da dize işleme (string manipulation) için kullanılan bir pakettir. Bu paket, dize (string) manipülasyon işlemleri yapmayı kolaylaştıran bir dizi fonksiyon içerir. stringr paketi, R’ın temel dize işleme fonksiyonlarına ek olarak daha tutarlı ve kullanıcı dostu bir arayüz sunar.

stringr Paketinin Temel Fonksiyonları: Dize Araştırma ve Değiştirme: Belirli bir dize içinde alt dize arama ve değiştirme işlemleri için kullanılır.

“string” kelimesini “dize” olarak değiştirme new_text <- str_replace(text, “string”, “dize”) print(new_text) Dize Bölme ve Birleştirme: Bir dizeyi belirli bir ayıraçla bölme veya ayrı dize parçalarını birleştirme işlemleri için kullanılır.

Virgül ile ayrılmış dizeyi bölme parts <- str_split(text, “,”) print(parts) bir örenektir

tidyverse

R için tasarlanmış bir koleksiyon (suite) paketlerdir ve veri bilimi ve veri analizi için kullanılan bir dizi araç ve paketi içerir. tidyverse, R’ın temel veri yapıları ve işlemleri üzerine inşa edilmiştir ve veri işleme, görselleştirme ve modelleme işlemlerini daha tutarlı ve etkili bir şekilde yapmayı amaçlar.

tidyverse Koleksiyonuna Dahil Olan Temel Paketler: ggplot2: Veri görselleştirme için kullanılan kapsamlı bir pakettir. Declarative grafik oluşturma dilini kullanarak yüksek kaliteli grafikler oluşturmanıza olanak tanır.

vize proje ödevi

popilasyon : SP.POP.TOTL 
tahıl üretimi : AG.PRD.CREL.MT 
GSYİH : NY.GDP.MKTP.CD

https://data.worldbank.org/indicator/AG.PRD.CREL.MT

library(WDI)
## Warning: package 'WDI' was built under R version 4.3.3
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.3
## Warning: package 'ggplot2' was built under R version 4.3.3
## Warning: package 'tibble' was built under R version 4.3.3
## Warning: package 'tidyr' was built under R version 4.3.3
## Warning: package 'readr' was built under R version 4.3.3
## Warning: package 'purrr' was built under R version 4.3.3
## Warning: package 'dplyr' was built under R version 4.3.3
## Warning: package 'forcats' was built under R version 4.3.3
## Warning: package 'lubridate' was built under R version 4.3.3
## ── 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)
## Warning: package 'explore' was built under R version 4.3.3

paketler yüklendi

verinin işlenilmesi

data <- WDI(country = "all", indicator = c("AG.PRD.CREL.MT","SP.POP.TOTL","NY.GDP.MKTP.CD"),start = 2000,end = 2020)
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 AG.PRD.CREL.MT dbl     833   14.9   4637        0   1.11e 8  3.00e 9
## 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 AG.PRD.CREL.MT dbl     812   18     3650        0      14065060.  6.18e 8
##  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_veri <- data_extra[is.na(data_extra$NY.GDP.MKTP.CD),]
kayip_deger <- data_extra %>% group_by(country) %>% summarise(kayip = sum(is.na(NY.GDP.MKTP.CD)))
data <- left_join(data_extra,kayip_deger)
## 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 AG.PRD.CREL.MT dbl     510   12.6   3496        0      14615651.  6.18e 8
##  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

verimiz analiz yapmaya uygun hale geldi

ülke seçimi ve grafik çizimi

almanya <- data %>% filter(iso2c=="DE")
ggplot(almanya, aes(x=year,y=AG.PRD.CREL.MT))+ geom_line(colur="red")+ labs(title= " almanya 2000-2020 ye kadar buğday üretimi")
## Warning in geom_line(colur = "red"): Ignoring unknown parameters: `colur`

sene seçimi

data_2018 <- data %>% filter(year==2018)
ggplot(data_2018,aes(x=SP.POP.TOTL,y=AG.PRD.CREL.MT, label = iso2c,color = region)) + geom_point() + geom_text()
## Warning: Removed 23 rows containing missing values or values outside the scale range
## (`geom_point()`).
## Warning: Removed 23 rows containing missing values or values outside the scale range
## (`geom_text()`).

veride fazla olduğu için fazla üretim yapan ülkeri seçiyorum 
data_2018_1 <- data_2018 %>% filter(AG.PRD.CREL.MT > 50000)
ggplot(data_2018_1,aes(x=SP.POP.TOTL,y=AG.PRD.CREL.MT, label = iso2c,colour = region)) + geom_point() + geom_text()

veriyi daha iyi yorumlamak için uçlardaki ülkeleri siliyoruz

data_2018_1a <- data_2018_1
data_2018_1a <- data_2018_1 %>% filter(iso2c !="CN")
data_2018_1a <- data_2018_1a %>% filter(iso2c !="US")
data_2018_1a <- data_2018_1a %>% filter(iso2c !="IN")
ggplot(data_2018_1a,aes(x=SP.POP.TOTL,y=AG.PRD.CREL.MT, label = iso2c,colour = region)) + geom_point() + geom_text()

dünya toplam üretimi

wold_data <- data %>% group_by(year) %>% summarise(nufus = sum(SP.POP.TOTL), uretim= sum(NY.GDP.MKTP.CD), kisibasi = sum(uretim/nufus))
ggplot(wold_data, aes(x=year,y=uretim))+ geom_line()+ scale_y_continuous(labels = scales::comma)+ labs(title="2000-2020 yılları arası toplam üretim")

ggplot(wold_data,aes(x=year,y=kisibasi, colour="red"))+ geom_line()+ scale_y_continuous(labels = scales::comma)+ labs(title = "2000-2020 lişi başına",x="yil", Y="kişi başına üretim")+ theme_classic()

data <- left_join(data,wold_data, by="year")

ülke payları

Ülkenin senelik veremi nedir? Belirli bir ülkenin nüfüstaki payı nedir?

mutate

data <- data %>% mutate(ulkeuretim = (AG.PRD.CREL.MT)/uretim, popilasyonorani = SP.POP.TOTL/nufus, verim = ulkeuretim/popilasyonorani)
ggplot(data[3907:3927 , ], aes(x=year,y=verim))+ geom_line()+ labs(title = "2000-2020 yılları arasında Almanya'nin verim katsayısı")

ggplot(data[3907:3920, ], aes(x=year,y=popilasyonorani))+
  geom_line()+
labs(title = "2000-2010 yılları arasında Almanya'nin dünyadakı üretim  orani")

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

tahıl üretimi ve verimlilik

2014 yılını seçtim

data_2014 <- data %>% filter(year==2014)
ggplot(data_2014,aes(x=AG.PRD.CREL.MT,y=verim, label = iso2c,colour = region)) + geom_point() + geom_text() + geom_hline(yintercept = 0)+theme_classic()
## Warning: Removed 24 rows containing missing values or values outside the scale range
## (`geom_point()`).
## Warning: Removed 24 rows containing missing values or values outside the scale range
## (`geom_text()`).

ülke sayınsını azatmak için avrupa ve asya kıtasına bakıyotum

data_2014_eu <- data_2014 %>% filter(region == "Europe & Central Asia")
ggplot(data_2014_eu,aes(x=AG.PRD.CREL.MT,y=verim, label = iso2c,colour = region)) + geom_point() +
  geom_text()+ 
  geom_hline(yintercept = 0.0001)+ 
  scale_x_continuous(labels = scales::comma)+ theme_classic()+ labs(title="üretim ve verim arası ilişki ",x="uretim", y="Verim")
## Warning: Removed 8 rows containing missing values or values outside the scale range
## (`geom_point()`).
## Warning: Removed 8 rows containing missing values or values outside the scale range
## (`geom_text()`).

verimi 0.0001 den düşük ülkelere 0 a yakın kabul ediyurum