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 öenmiR’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ştirmeR’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 paketlermarkdownBu 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,
gglotggplot2’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.
purrrpaketinde 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.
stringrR’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
tidyverseR 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 ödevipopilasyon : 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şlenilmesidata <- 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 çizimialmanya <- 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çimidata_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 siliyoruzdata_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 üretimiwold_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?mutatedata <- 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 verimlilikdata_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ıyotumdata_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