# 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.
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
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
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
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 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