R’de “paketler”, önceden yazılmış kod parçaları ve işlevlerin bir araya getirilmiş koleksiyonlarıdır. Bu paketler, kullanıcıların belirli görevleri gerçekleştirmelerine yardımcı olmak için bir araya getirilmiş işlevler, veri kümeleri ve diğer öğeleri içerebilir.
R paketlerinin birkaç önemli örneği şunlardır:
dplyr: Veri manipülasyonu için kullanılan bir paket.
ggplot2: Veri görselleştirme için kullanılan bir paket.
tidyr: Veri düzenleme ve temizleme işlemleri için kullanılan bir paket.
caret: Makine öğrenimi modellerini oluşturmak, eğitmek ve değerlendirmek için kullanılan bir paket.
magrittr: İşlev zincirleme (function chaining) için kullanılan bir paket.
readr: Veri dosyalarını okumak ve yazmak için kullanılan bir paket.
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.
R paketleri R programlama dilindeki önemli araçlardır ve birçok nedenden dolayı önemlidirler:
Fonksiyonel Zenginlik: R paketleri, çeşitli analiz ve veri işleme görevlerini gerçekleştirmek için binlerce önceden yazılmış fonksiyon içerir. Bu, kullanıcıların tekrar tekrar kod yazmak zorunda kalmadan karmaşık işlemleri gerçekleştirmelerini sağlar.
Veri Analizi ve Görselleştirme: R paketleri, veri analizi ve görselleştirme için güçlü araçlar sunar. Örneğin, ggplot2 gibi paketlerle ve görselleştirmesi yapabilir ve dplyr gibi paketlerle veri manipülasyonu yapabilirsiniz.
Makine Öğrenimi ve İstatistik: R, makine öğrenimi ve istatistik alanında kullanılan birçok popüler algoritmayı içeren paketlerle zenginleştirilmiştir. caret, randomForest, glmnet gibi paketler, farklı makine öğrenimi modellerini ve istatistiksel analiz araçlarını içerir.
Topluluk Katkısı ve Paylaşımı: R paketleri, genellikle geniş bir topluluk tarafından geliştirilir ve paylaşılır. Bu, farklı kullanıcıların ihtiyaçlarına yönelik çözümlerin kolayca erişilebilir olmasını sağlar. Aynı zamanda allanıcılar kendi paketlerini oluşturabilir ve topluluğa katkıda bulunabilir.
Dökümantasyon ve Örnekler: İyi bir R paketi, genellikle detaylı dökümantasyon ve örnekler içerir. Bu, kullanıcıların paketin nasıl kullanılacağını öğrenmelerine ve hızlı bir şekilde başlamalarına yardımcı olur.
Tekrar Kullanılabilirlik ve Verimlilik: R paketleri, kodun tekrar kullanılabilirliğini artırır ve verimliliği artırır. Önceden yazılmış işlevler ve modüller sayesinde, kullanıcılar benzer görevleri hızla gerçekleştirebilir ve zaman kazanabilir.
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.
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:
install.packages(“devtools”)
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:
if (!require(ggplot2)) { install.packages(“ggplot2”) library(ggplot2) } else { library(ggplot2) } Bu yöntemlerle, R paketlerine kolayca erişebilir ve projelerinizde kullanabilirsiniz.
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:
Paketin Etkinleştirilmesi: Paketi yükledikten sonra, R ortamında etkinleştirmeniz gerekir. Bunun için library() veya require() fonksiyonlarını kullanabilirsiniz. Örneğin:
Paket İçindeki Fonksiyonları Kullanma: Şimdi, paket içindeki fonksiyonları kullanabilirsiniz. Örneğin, ggplot2 paketini kullanarak bir grafik oluşturabilirsiniz:
data <- data.frame(x = c(1, 2, 3, 4, 5), y = c(2, 3, 5, 7, 11))
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