Excel dosyasını R’a aktarma

# install.packages(readxl) #R'a excel dosyasını aktarmaya sağlayan paketi indirir. 
library(readxl) #R'a excel dosyasını aktarmaya sağlayan pakettir. 
rezervler <- read_excel(path = "~/R_files/BFRC Eğitim 2/rezervler.xlsx", #path, dosyanın bulunduğu klasörü gösterir
    sheet = "data", #sheet argümanı, excel dosyasının hangi sayfasını alacağımızı gösterir
    col_types = c("date", "numeric", "numeric")) #col_types argümanı kolonların veri tipini değiştirir.
Excel şu an böyle görünüyor
rezervler
## # A tibble: 667 × 3
##    Tarih               `TP AB C1` `TP AB C2`
##    <dttm>                   <dbl>      <dbl>
##  1 2012-01-06 00:00:00      10090      77756
##  2 2012-01-13 00:00:00      10090      77231
##  3 2012-01-20 00:00:00      10095      75297
##  4 2012-01-27 00:00:00      10095      76327
##  5 2012-02-03 00:00:00      11126      76984
##  6 2012-02-10 00:00:00      11126      77410
##  7 2012-02-17 00:00:00      11090      77011
##  8 2012-02-24 00:00:00      11090      77725
##  9 2012-03-02 00:00:00      11556      79224
## 10 2012-03-09 00:00:00      11556      78855
## # ℹ 657 more rows

şimdi daha kolay islem yapmak icin kolon adlarını değiştireceğiz.

colnames(rezervler) # bu fonksiyon bize verisetinin kolon isimlerini gösteriyor.
## [1] "Tarih"    "TP AB C1" "TP AB C2"

biz de bu fonksiyonu kullanarak kolon isimlerine yeni isimler atayacağız

colnames(rezervler) <- c("Tarih","Altın","Döviz")

şimdi isimleri değişti

rezervler
## # A tibble: 667 × 3
##    Tarih               Altın Döviz
##    <dttm>              <dbl> <dbl>
##  1 2012-01-06 00:00:00 10090 77756
##  2 2012-01-13 00:00:00 10090 77231
##  3 2012-01-20 00:00:00 10095 75297
##  4 2012-01-27 00:00:00 10095 76327
##  5 2012-02-03 00:00:00 11126 76984
##  6 2012-02-10 00:00:00 11126 77410
##  7 2012-02-17 00:00:00 11090 77011
##  8 2012-02-24 00:00:00 11090 77725
##  9 2012-03-02 00:00:00 11556 79224
## 10 2012-03-09 00:00:00 11556 78855
## # ℹ 657 more rows

R üzerinde verileri düzenleme

library(tidyverse) #R üzerinde kolay veri analizi yapmaya yarayan paket. İçinde dplyr, ggplot2, stringr gibi paketler var.

biz çoğu işlemi bu paketi kullanarak yapacağız. Şimdi verisetine tekrar bakalım:

rezervler
## # A tibble: 667 × 3
##    Tarih               Altın Döviz
##    <dttm>              <dbl> <dbl>
##  1 2012-01-06 00:00:00 10090 77756
##  2 2012-01-13 00:00:00 10090 77231
##  3 2012-01-20 00:00:00 10095 75297
##  4 2012-01-27 00:00:00 10095 76327
##  5 2012-02-03 00:00:00 11126 76984
##  6 2012-02-10 00:00:00 11126 77410
##  7 2012-02-17 00:00:00 11090 77011
##  8 2012-02-24 00:00:00 11090 77725
##  9 2012-03-02 00:00:00 11556 79224
## 10 2012-03-09 00:00:00 11556 78855
## # ℹ 657 more rows

Dplyr kullanarak veri manipülasyonu yapmak

mutate() fonksiyonu bize, halizhazırda verisetinde bulunan kolonları kullanarak yeni kolonlar üretmemizi sağlar. basit matematik işlemleri yapılabileceği gibi karmaşık işlemler de yapılabilir.

rezervler %>% mutate(Toplam = Altın + Döviz) # Fonksiyonun içine İLK ÖNCE YENİ KOLONUN adını daha sonra hesaplama yapılacak kolonları koyabiliriz. eğer halihazırda varolan veriyi değiştirmek istiyorsak `mutate(Altın = Döviz *2)` gibi kullanabiliriz.
## # A tibble: 667 × 4
##    Tarih               Altın Döviz Toplam
##    <dttm>              <dbl> <dbl>  <dbl>
##  1 2012-01-06 00:00:00 10090 77756  87846
##  2 2012-01-13 00:00:00 10090 77231  87321
##  3 2012-01-20 00:00:00 10095 75297  85392
##  4 2012-01-27 00:00:00 10095 76327  86422
##  5 2012-02-03 00:00:00 11126 76984  88110
##  6 2012-02-10 00:00:00 11126 77410  88536
##  7 2012-02-17 00:00:00 11090 77011  88101
##  8 2012-02-24 00:00:00 11090 77725  88815
##  9 2012-03-02 00:00:00 11556 79224  90780
## 10 2012-03-09 00:00:00 11556 78855  90411
## # ℹ 657 more rows

yeni hesaplamayı rezervler_toplam ismiyle kaydedelim

rezervler_toplam <- rezervler %>% mutate(Toplam = Altın + Döviz)
rezervler_toplam
## # A tibble: 667 × 4
##    Tarih               Altın Döviz Toplam
##    <dttm>              <dbl> <dbl>  <dbl>
##  1 2012-01-06 00:00:00 10090 77756  87846
##  2 2012-01-13 00:00:00 10090 77231  87321
##  3 2012-01-20 00:00:00 10095 75297  85392
##  4 2012-01-27 00:00:00 10095 76327  86422
##  5 2012-02-03 00:00:00 11126 76984  88110
##  6 2012-02-10 00:00:00 11126 77410  88536
##  7 2012-02-17 00:00:00 11090 77011  88101
##  8 2012-02-24 00:00:00 11090 77725  88815
##  9 2012-03-02 00:00:00 11556 79224  90780
## 10 2012-03-09 00:00:00 11556 78855  90411
## # ℹ 657 more rows

veriyi grafik için hazırlamak.

R ve diğer programlama dilleri, geniş veri seti ile çalışmak yerine uzun veri seti ile çalışmak daha kolaydır. bu da pivot_longer() fonksiyonu ile gelir. pivot_longer() fonksiyonunu chatgpt’ye sorarak daha çok bilgi alabilirsiniz.

rezervler_toplam %>% pivot_longer(cols = c(2,3,4))
## # A tibble: 2,001 × 3
##    Tarih               name   value
##    <dttm>              <chr>  <dbl>
##  1 2012-01-06 00:00:00 Altın  10090
##  2 2012-01-06 00:00:00 Döviz  77756
##  3 2012-01-06 00:00:00 Toplam 87846
##  4 2012-01-13 00:00:00 Altın  10090
##  5 2012-01-13 00:00:00 Döviz  77231
##  6 2012-01-13 00:00:00 Toplam 87321
##  7 2012-01-20 00:00:00 Altın  10095
##  8 2012-01-20 00:00:00 Döviz  75297
##  9 2012-01-20 00:00:00 Toplam 85392
## 10 2012-01-27 00:00:00 Altın  10095
## # ℹ 1,991 more rows

veya rezervler_toplam %>% pivot_longer(cols = 2:4) pivot_longer() fonksiyonunun içine cols= argümanını yazıp, hangi kolonları uzatmak istediğimizi yazıyoruz. burada önemli olan şey kolonların aynı veri türünde (sayı) olmasıdır.

%>% işareti sayesinde uyumlu fonsksiyonları birbirine bağlamak mümkün

rezervler_toplam %>% pivot_longer(cols = c(2,3,4))
## # A tibble: 2,001 × 3
##    Tarih               name   value
##    <dttm>              <chr>  <dbl>
##  1 2012-01-06 00:00:00 Altın  10090
##  2 2012-01-06 00:00:00 Döviz  77756
##  3 2012-01-06 00:00:00 Toplam 87846
##  4 2012-01-13 00:00:00 Altın  10090
##  5 2012-01-13 00:00:00 Döviz  77231
##  6 2012-01-13 00:00:00 Toplam 87321
##  7 2012-01-20 00:00:00 Altın  10095
##  8 2012-01-20 00:00:00 Döviz  75297
##  9 2012-01-20 00:00:00 Toplam 85392
## 10 2012-01-27 00:00:00 Altın  10095
## # ℹ 1,991 more rows

burada verilerin isimleri bir kolonda, karşılığı olan veri diğer kolonda toplanmaktadır. isimlerini değiştirmek için pivot_longer içindeki argümanları kullanabiliriz

rezervler_toplam %>% pivot_longer(cols = c(2,3,4),names_to = "Rezervler", values_to = "milyon_usd")
## # A tibble: 2,001 × 3
##    Tarih               Rezervler milyon_usd
##    <dttm>              <chr>          <dbl>
##  1 2012-01-06 00:00:00 Altın          10090
##  2 2012-01-06 00:00:00 Döviz          77756
##  3 2012-01-06 00:00:00 Toplam         87846
##  4 2012-01-13 00:00:00 Altın          10090
##  5 2012-01-13 00:00:00 Döviz          77231
##  6 2012-01-13 00:00:00 Toplam         87321
##  7 2012-01-20 00:00:00 Altın          10095
##  8 2012-01-20 00:00:00 Döviz          75297
##  9 2012-01-20 00:00:00 Toplam         85392
## 10 2012-01-27 00:00:00 Altın          10095
## # ℹ 1,991 more rows
#kaydedelim
rezervler_uzun <- rezervler_toplam %>% pivot_longer(cols = c(2,3,4),names_to = "Rezervler", values_to = "milyon_usd")

grafikleştirme

grafikleştirme için ggplot2 paketini kullanacağız

ggplot(data = rezervler_uzun)+ # ggplot içine görselleştirmek istediğimiz datayı koyacağız
  geom_line(mapping = aes(x = Tarih, y = milyon_usd, color = Rezervler)) # geom_line bize nasıl görselleştirmek istediğimiz verecek, geom_col = kolon, geom_line = çizgigrafik verir

ggplot(data = rezervler_uzun %>% filter(Rezervler != "Toplam"))+ # ggplot içine görselleştirmek istediğimiz datayı koyacağız. kolon grafikte toplam zaten üst üste gelen rezervler olacağından, toplam verisini filtreleyebiliriz.
  geom_col(mapping = aes(x = Tarih, y = milyon_usd, color = Rezervler, fill = Rezervler)) # fill ve color argümanı, veriyi neye göre renklendireceğimizi gösterir. verisetimizde değişkenimiz  "Rezervler" kolonu olduğundan, bunu giriyoruz