vize ödevi

Ömer SELÇUK

2024-04-15

Paketler

Ve bunlar sadece birkaç örnek. R topluluğu binlerce paketle doludur ve her biri farklı bir ihtiyaca yöneliktir. Bu paketler CRAN (Comprehensive R Archive Network) gibi platformlarda bulunabilir ve genellikle install.packages() fonksiyonuyla R ortamına kurulabilir. Daha sonra ise library() fonksiyonuyla yüklü paketler çalışma ortamına çağrılabilir.

Paketler neden önemlidir?

Bu nedenlerden dolayı, R paketleri veri analizi, istatistik, görselleştirme ve makine öğrenimi gibi alanlarda R programlama dilinin gücünü artırır ve kullanıcıların daha etkili bir şekilde çalışmasını sağlar.

Paketlere nasıl erişilir?

CRAN (Comprehensive R Archive Network): CRAN, R paketlerinin ana dağıtım noktasıdır. R paketlerinin çoğu CRAN’da barındırılır ve bu nedenle CRAN’dan paketleri indirmek ve yüklemek en yaygın yöntemdir. CRAN deposuna erişmek için install.packages() fonksiyonunu kullanabilirsiniz. Örneğin:

install.packages(“ggplot2”) GitHub veya Diğer Depolama Siteleri: Bazı R paketleri, GitHub gibi diğer depolama sitelerinde barındırılır. Bu paketlere erişmek için devtools gibi bir paketi yüklemeniz ve install_github() fonksiyonunu kullanmanız gerekebilir.
Örneğin:

devtools paketini yükleyin (eğer yüklü değilse)

install.packages(“devtools”)

GitHub’dan bir paketi yükleyin

devtools::install_github(“kohske/ggplot2-extension”)

Paketler yüklendikten sonra, library() fonksiyonunu kullanarak R oturumunda belirli bir paketi etkinleştirebilirsiniz. Örneğin:

library(ggplot2) Bir paketin R ortamınızda yüklü olup olmadığını kontrol etmek için library() veya require() fonksiyonlarını kullanabilirsiniz. Örneğin:

ggplot2 paketinin yüklü olup olmadığını kontrol etmek için

if (!require(ggplot2)) { install.packages(“ggplot2”) library(ggplot2) } else { library(ggplot2) } Bu yöntemlerle, R paketlerine kolayca erişebilir ve projelerinizde kullanabilirsiniz.

Paketin kullanımı

Paketin Yüklenmesi: İlk olarak, kullanmak istediğiniz paketi yüklemeniz gerekir. Bu, install.packages() fonksiyonuyla yapılır. Örneğin, ggplot2 paketini yüklemek için:

install.packages(“ggplot2”)

Paketin Etkinleştirilmesi: Paketi yükledikten sonra, R ortamında etkinleştirmeniz gerekir. Bunun için library() veya require() fonksiyonlarını kullanabilirsiniz. Örneğin:

library(ggplot2)

Paket İçindeki Fonksiyonları Kullanma: Şimdi, paket içindeki fonksiyonları kullanabilirsiniz. Örneğin, ggplot2 paketini kullanarak bir grafik oluşturabilirsiniz:

Veri seti oluşturma

data <- data.frame(x = c(1, 2, 3, 4, 5), y = c(2, 3, 5, 7, 11))

ggplot2 paketini kullanarak bir scatter plot oluşturma

ggplot(data, aes(x = x, y = y)) + geom_point() Bu basit adımları takip ederek R paketlerini kullanabilirsiniz. Paketin belgelerini ve örneklerini incelemek, özellikle yeni bir paketi kullanmaya başlarken faydalı olabilir. Ayrıca, R Studio gibi entegre geliştirme ortamları, paketlerin kullanımını daha da kolaylaştırabilir ve belgelere erişimi sağllanbilir

## install.packages("tidyverse")
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
## install.packages("WDI")
library(WDI)
population_data <- WDI(indicator = "SP.POP.TOTL", start = 1980, end = 2020)
library(explore)
str(population_data)
## 'data.frame':    10906 obs. of  5 variables:
##  $ country    : chr  "Africa Eastern and Southern" "Africa Eastern and Southern" "Africa Eastern and Southern" "Africa Eastern and Southern" ...
##  $ iso2c      : chr  "ZH" "ZH" "ZH" "ZH" ...
##  $ iso3c      : chr  "AFE" "AFE" "AFE" "AFE" ...
##  $ year       : int  2020 2019 2018 2017 2016 2015 2014 2013 2012 2011 ...
##  $ SP.POP.TOTL: num  6.85e+08 6.67e+08 6.50e+08 6.33e+08 6.16e+08 ...
##   ..- attr(*, "label")= chr "Population, total"
##  - attr(*, "lastupdated")= chr "2024-03-28"
##  - attr(*, "label")= chr [1:10906] "Population, total" "Population, total" "Population, total" "Population, total" ...
bitlis <- WDI_data$country
data_bitlis <- left_join(population_data, bitlis)
## Joining with `by = join_by(country, iso2c, iso3c)`
data_bitlis <- data_bitlis %>% filter(region != "Aggregates")
data_bitlis %>% describe_all
## # A tibble: 11 × 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       41  1980     2000        2020
##  5 SP.POP.TOTL dbl      10    0.1   8789  7598 28055640. 1411100000
##  6 region      chr       0    0        7    NA       NA          NA
##  7 capital     chr       0    0      210    NA       NA          NA
##  8 longitude   chr       0    0      210    NA       NA          NA
##  9 latitude    chr       0    0      210    NA       NA          NA
## 10 income      chr       0    0        5    NA       NA          NA
## 11 lending     chr       0    0        4    NA       NA          NA
veri <- data.frame(
  ülke = c("Türkiye","ABD","Çin","Almanya","Fransa"),
  population_1980 = c(200,400,NA,600,800),
  population_1990 = c(100,300,500,NA,700),
  population_2000 = c(110,NA,330,550,770),
  population_2020 = c(NA,110,220,330,440)
)
eksik_degerler <- data_bitlis[is.na(data_bitlis$SP.POP.TOTL),
]
kayıp_deger <- data_bitlis %>% group_by(country) %>% summarise(kayip = sum(is.na(SP.POP.TOTL)))
amed <- left_join(data_bitlis, kayıp_deger)
## Joining with `by = join_by(country)`
describe_all(amed)
## # A tibble: 12 × 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       41  1980     2000          2020
##  5 SP.POP.TOTL dbl      10    0.1   8789  7598 28055640.   1411100000
##  6 region      chr       0    0        7    NA       NA            NA
##  7 capital     chr       0    0      210    NA       NA            NA
##  8 longitude   chr       0    0      210    NA       NA            NA
##  9 latitude    chr       0    0      210    NA       NA            NA
## 10 income      chr       0    0        5    NA       NA            NA
## 11 lending     chr       0    0        4    NA       NA            NA
## 12 kayip       int       0    0        2     0        0.05         10
data_türkiye <- amed %>% filter(iso2c == "TR")
library(ggplot2)
ggplot(data_türkiye, aes(y= year, x= SP.POP.TOTL)) + 
  geom_line(colour = "blue") + labs(title = "nüfusun değişimi (1980-2020)", y = "Yıl", x = "nüfus") + theme_minimal()

df_kesitveri <- amed %>% filter(year==1980)
ggplot(df_kesitveri, aes(y=year, x= SP.POP.TOTL, label=df_kesitveri$iso2c )) +
  geom_point() + geom_text()
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_point()`).
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_text()`).

data_United_States <- amed %>% filter(iso2c == "US")
ggplot(data_United_States, aes(y= year, x= SP.POP.TOTL)) + 
  geom_line(colur = "yellow") + labs(title = "nüfusun değişimi (1980-2020)", y = "Yıl", x = "nüfus") + theme_minimal()
## Warning in geom_line(colur = "yellow"): Ignoring unknown parameters: `colur`

amed_2020 <- amed %>% filter(year == 2020)
ggplot(amed_2020, aes(y = year, x = SP.POP.TOTL,label = iso2c, colour = region)) + geom_point() + geom_text()

Europe <- amed %>% filter(year == 1980)
ggplot(Europe, aes(y = year, x = SP.POP.TOTL,label = iso2c, colour = region)) + geom_point() + geom_text()
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_point()`).
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_text()`).

dünya <- amed %>% group_by(year) %>% summarise(dünyanüfusu = sum(SP.POP.TOTL))
ggplot(dünya, aes(x = year, y = dünyanüfusu, colour = "whait")) + geom_line() + labs(title = "dünyanüfusu", x = "sene", y = "nüfusu") + theme_classic()
## Warning: Removed 10 rows containing missing values or values outside the scale range
## (`geom_line()`).

amed <- left_join(amed, dünya, by= "year")
doğum <- amed %>% mutate(ülkenüfusu = SP.POP.TOTL /dünyanüfusu,
 verim = ülkenüfusu/dünyanüfusu)
ggplot(doğum[8078:8118 , ], aes(x=year, y=ülkenüfusu)) + geom_bin_2d() + theme_grey()
## Warning: Removed 10 rows containing non-finite outside the scale range
## (`stat_bin2d()`).

ggplot(doğum[1682:1722 , ], aes(x=year, y=ülkenüfusu)) + geom_bin2d() + theme_classic()
## Warning: Removed 10 rows containing non-finite outside the scale range
## (`stat_bin2d()`).

ggplot(doğum[8406:8446 , ], aes(x=year, y=ülkenüfusu)) + geom_density_2d() + theme_replace()
## Warning: Removed 10 rows containing non-finite outside the scale range
## (`stat_density2d()`).

amed_TR_US_CN_RU <- amed %>% filter(iso2c %in% c("TR","US","CN","RU"))
ggplot(amed_TR_US_CN_RU, aes(year, SP.POP.TOTL, color = country)) + geom_bin_2d() + theme_minimal() + labs(x = "sene", y = "ülkenüfusu", title = "nüfus TR,US,CN and RU")

library(quantmod)
## Zorunlu paket yükleniyor: xts
## Zorunlu paket yükleniyor: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## 
## ######################### Warning from 'xts' package ##########################
## #                                                                             #
## # The dplyr lag() function breaks how base R's lag() function is supposed to  #
## # work, which breaks lag(my_xts). Calls to lag(my_xts) that you type or       #
## # source() into this session won't work correctly.                            #
## #                                                                             #
## # Use stats::lag() to make sure you're not using dplyr::lag(), or you can add #
## # conflictRules('dplyr', exclude = 'lag') to your .Rprofile to stop           #
## # dplyr from breaking base R's lag() function.                                #
## #                                                                             #
## # Code in packages is not affected. It's protected by R's namespace mechanism #
## # Set `options(xts.warn_dplyr_breaks_lag = FALSE)` to suppress this warning.  #
## #                                                                             #
## ###############################################################################
## 
## Attaching package: 'xts'
## The following objects are masked from 'package:dplyr':
## 
##     first, last
## Zorunlu paket yükleniyor: TTR
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
getSymbols("amed")
## [1] "amed"
dim(amed)
## [1] 8815   13
head(amed)
##       country iso2c iso3c year SP.POP.TOTL     region capital longitude
## 1 Afghanistan    AF   AFG 2020    38972230 South Asia   Kabul   69.1761
## 2 Afghanistan    AF   AFG 2019    37769499 South Asia   Kabul   69.1761
## 3 Afghanistan    AF   AFG 2018    36686784 South Asia   Kabul   69.1761
## 4 Afghanistan    AF   AFG 2017    35643418 South Asia   Kabul   69.1761
## 5 Afghanistan    AF   AFG 2016    34636207 South Asia   Kabul   69.1761
## 6 Afghanistan    AF   AFG 2015    33753499 South Asia   Kabul   69.1761
##   latitude     income lending kayip dünyanüfusu
## 1  34.5228 Low income     IDA     0  7689275240
## 2  34.5228 Low income     IDA     0  7611734966
## 3  34.5228 Low income     IDA     0  7531252595
## 4  34.5228 Low income     IDA     0  7448262005
## 5  34.5228 Low income     IDA     0  7363214226
## 6  34.5228 Low income     IDA     0  7277651145
tail(amed)
##       country iso2c iso3c year SP.POP.TOTL             region capital longitude
## 8810 Zimbabwe    ZW   ZWE 1985     8690515 Sub-Saharan Africa  Harare   31.0672
## 8811 Zimbabwe    ZW   ZWE 1984     8398567 Sub-Saharan Africa  Harare   31.0672
## 8812 Zimbabwe    ZW   ZWE 1983     8106356 Sub-Saharan Africa  Harare   31.0672
## 8813 Zimbabwe    ZW   ZWE 1982     7803855 Sub-Saharan Africa  Harare   31.0672
## 8814 Zimbabwe    ZW   ZWE 1981     7506526 Sub-Saharan Africa  Harare   31.0672
## 8815 Zimbabwe    ZW   ZWE 1980     7049926 Sub-Saharan Africa  Harare   31.0672
##      latitude              income lending kayip dünyanüfusu
## 8810 -17.8312 Lower middle income   Blend     0          NA
## 8811 -17.8312 Lower middle income   Blend     0          NA
## 8812 -17.8312 Lower middle income   Blend     0          NA
## 8813 -17.8312 Lower middle income   Blend     0          NA
## 8814 -17.8312 Lower middle income   Blend     0          NA
## 8815 -17.8312 Lower middle income   Blend     0          NA