library(tidyverse)
library(rvest)
library(ggplot2)
library(scales)

Data Preparation

bkm_sektor <- read_html("https://bkm.com.tr/secilen-aya-ait-sektorel-gelisim/?filter_year=2019&filter_month=6&List=Listele")

tbls <- html_nodes(bkm_sektor, "table")
head(tbls)
## {xml_nodeset (4)}
## [1] <table width="735" border="0" cellspacing="0" cellpadding="0" class= ...
## [2] <table width="0" border="0" align="left" cellpadding="0" cellspacing ...
## [3] <table width="735" border="0" cellspacing="0" cellpadding="0" class= ...
## [4] <table width="100%" border="0" cellspacing="0" cellpadding="0">\n<tr ...
tbls_ls <- bkm_sektor %>%
  html_nodes("table") %>%
  .[4] %>%
  html_table(fill = TRUE)

str(tbls_ls)
## List of 1
##  $ :'data.frame':    29 obs. of  5 variables:
##   ..$ X1: chr [1:29] "İşyeri Grubu" "İşyeri Grubu" "ARABA KİRALAMA" "ARAÇ KİRALAMA-SATIŞ/SERVİS/YEDEK PARÇA" ...
##   ..$ X2: chr [1:29] "İşlem Adedi" "İşlem Adedi(Kredi Kartı)" "306.426" "3.335.321" ...
##   ..$ X3: chr [1:29] "İşlem Adedi" "İşlem Adedi (Banka Kartı)" "77.113" "902.483" ...
##   ..$ X4: chr [1:29] "İşlem Tutarı (Milyon TL)" "İşlem Tutarı \n                (Kredi Kartı)" "256,63" "2.588,91" ...
##   ..$ X5: chr [1:29] "İşlem Tutarı (Milyon TL)" "İşlem Tutarı \n                    (Banka Kartı)" "43,79" "190,61" ...
head(tbls_ls[[1]], 5)
##                                       X1                       X2
## 1                           Ä°ÅŸyeri Grubu              Ä°ÅŸlem Adedi
## 2                           İşyeri Grubu İşlem Adedi(Kredi Kartı)
## 3                         ARABA KÄ°RALAMA                  306.426
## 4 ARAÇ KİRALAMA-SATIŞ/SERVİS/YEDEK PARÇA                3.335.321
## 5           BENZÄ°N VE YAKIT Ä°STASYONLARI               32.572.382
##                          X3                                           X4
## 1               İşlem Adedi                     İşlem Tutarı (Milyon TL)
## 2 İşlem Adedi (Banka Kartı) İşlem Tutarı \n                (Kredi Kartı)
## 3                    77.113                                       256,63
## 4                   902.483                                     2.588,91
## 5                13.813.215                                     6.515,69
##                                                 X5
## 1                         İşlem Tutarı (Milyon TL)
## 2 İşlem Tutarı \n                    (Banka Kartı)
## 3                                            43,79
## 4                                           190,61
## 5                                         1.195,27
tbls_ls[[1]] <- tbls_ls[[1]] %>% slice(3:28)
head(tbls_ls[[1]], 28)
##                                        X1          X2         X3        X4
## 1                          ARABA KÄ°RALAMA     306.426     77.113    256,63
## 2  ARAÇ KİRALAMA-SATIŞ/SERVİS/YEDEK PARÇA   3.335.321    902.483  2.588,91
## 3            BENZÄ°N VE YAKIT Ä°STASYONLARI  32.572.382 13.813.215  6.515,69
## 4                      BIREYSEL EMEKLILIK   2.060.390      1.256    686,98
## 5                            ÇEŞİTLİ GIDA  31.076.151 20.446.524  5.147,68
## 6                      DOÄžRUDAN PAZARLAMA     738.068     45.268    723,68
## 7   EĞİTİM / KIRTASİYE / OFİS MALZEMELERİ   4.653.286  2.585.481  1.426,84
## 8    ELEKTRÄ°K-ELEKTRONÄ°K EÅžYA, BÄ°LGÄ°SAYAR   7.230.732  2.269.938  3.894,15
## 9                       GÄ°YÄ°M VE AKSESUAR  32.253.174 15.240.380  6.116,57
## 10                            HAVAYOLLARI   1.792.404    489.887  1.827,85
## 11                      HİZMET SEKTÖRLERİ  22.032.853  6.229.279  4.268,50
## 12                   KAMU/VERGI ODEMELERI   2.740.192  1.300.247  1.239,58
## 13                              KONAKLAMA   2.345.133  1.277.480  1.788,57
## 14       KULÃœP / DERNEK /SOSYAL HÄ°ZMETLER   1.180.990    283.274    305,33
## 15                KUMARHANE/İÇKİLİ YERLER     575.870    502.969    102,42
## 16                             KUYUMCULAR   1.099.748    426.152  1.166,39
## 17         MARKET VE ALIÅžVERÄ°Åž MERKEZLERÄ° 105.519.907 63.410.233 12.353,26
## 18                  MOBÄ°LYA VE DEKORASYON   4.379.615  1.692.679  2.603,43
## 19                       MÃœTEAHHÄ°T Ä°ÅžLERÄ°     716.433    313.869    806,56
## 20        SAÄžLIK/SAÄžLIK ÃœRÃœNLERÄ°/KOZMETÄ°K  13.975.225  7.480.747  2.404,86
## 21         SEYAHAT ACENTELERÄ°/TAÅžIMACILIK   7.224.598  3.152.401  2.311,90
## 22                                SÄ°GORTA   4.513.691     42.440  2.919,50
## 23                       TELEKOMÃœNÄ°KASYON  17.915.719  3.236.866  1.720,25
## 24  YAPI MALZEMELERÄ°, HIRDAVAT, NALBURÄ°YE   3.786.201  1.347.371  2.784,08
## 25                                  YEMEK  45.687.937 43.035.091  2.918,06
## 26                                  DÄ°ÄžER   4.984.660  1.072.573  1.414,83
##          X5
## 1     43,79
## 2    190,61
## 3  1.195,27
## 4      0,42
## 5    994,90
## 6     21,26
## 7    251,25
## 8    416,45
## 9  2.129,29
## 10   738,50
## 11   713,24
## 12   219,70
## 13   544,99
## 14    37,90
## 15    46,49
## 16   491,69
## 17 2.892,63
## 18   286,34
## 19    45,75
## 20   689,25
## 21   620,16
## 22    11,44
## 23   247,08
## 24   199,37
## 25 1.497,76
## 26   170,06

Updating Column Names

colnames(tbls_ls[[1]]) <- c("isyeri_grubu", "islem_adet_kredi_kart", "islem_adet_banka_kart",
                            "islem_tutar_kredi_kart", "islem_tutar_banka_kart")
head(tbls_ls[[1]], 28)
##                              isyeri_grubu islem_adet_kredi_kart
## 1                          ARABA KÄ°RALAMA               306.426
## 2  ARAÇ KİRALAMA-SATIŞ/SERVİS/YEDEK PARÇA             3.335.321
## 3            BENZÄ°N VE YAKIT Ä°STASYONLARI            32.572.382
## 4                      BIREYSEL EMEKLILIK             2.060.390
## 5                            ÇEŞİTLİ GIDA            31.076.151
## 6                      DOÄžRUDAN PAZARLAMA               738.068
## 7   EĞİTİM / KIRTASİYE / OFİS MALZEMELERİ             4.653.286
## 8    ELEKTRÄ°K-ELEKTRONÄ°K EÅžYA, BÄ°LGÄ°SAYAR             7.230.732
## 9                       GÄ°YÄ°M VE AKSESUAR            32.253.174
## 10                            HAVAYOLLARI             1.792.404
## 11                      HİZMET SEKTÖRLERİ            22.032.853
## 12                   KAMU/VERGI ODEMELERI             2.740.192
## 13                              KONAKLAMA             2.345.133
## 14       KULÃœP / DERNEK /SOSYAL HÄ°ZMETLER             1.180.990
## 15                KUMARHANE/İÇKİLİ YERLER               575.870
## 16                             KUYUMCULAR             1.099.748
## 17         MARKET VE ALIÅžVERÄ°Åž MERKEZLERÄ°           105.519.907
## 18                  MOBÄ°LYA VE DEKORASYON             4.379.615
## 19                       MÃœTEAHHÄ°T Ä°ÅžLERÄ°               716.433
## 20        SAÄžLIK/SAÄžLIK ÃœRÃœNLERÄ°/KOZMETÄ°K            13.975.225
## 21         SEYAHAT ACENTELERÄ°/TAÅžIMACILIK             7.224.598
## 22                                SÄ°GORTA             4.513.691
## 23                       TELEKOMÃœNÄ°KASYON            17.915.719
## 24  YAPI MALZEMELERÄ°, HIRDAVAT, NALBURÄ°YE             3.786.201
## 25                                  YEMEK            45.687.937
## 26                                  DÄ°ÄžER             4.984.660
##    islem_adet_banka_kart islem_tutar_kredi_kart islem_tutar_banka_kart
## 1                 77.113                 256,63                  43,79
## 2                902.483               2.588,91                 190,61
## 3             13.813.215               6.515,69               1.195,27
## 4                  1.256                 686,98                   0,42
## 5             20.446.524               5.147,68                 994,90
## 6                 45.268                 723,68                  21,26
## 7              2.585.481               1.426,84                 251,25
## 8              2.269.938               3.894,15                 416,45
## 9             15.240.380               6.116,57               2.129,29
## 10               489.887               1.827,85                 738,50
## 11             6.229.279               4.268,50                 713,24
## 12             1.300.247               1.239,58                 219,70
## 13             1.277.480               1.788,57                 544,99
## 14               283.274                 305,33                  37,90
## 15               502.969                 102,42                  46,49
## 16               426.152               1.166,39                 491,69
## 17            63.410.233              12.353,26               2.892,63
## 18             1.692.679               2.603,43                 286,34
## 19               313.869                 806,56                  45,75
## 20             7.480.747               2.404,86                 689,25
## 21             3.152.401               2.311,90                 620,16
## 22                42.440               2.919,50                  11,44
## 23             3.236.866               1.720,25                 247,08
## 24             1.347.371               2.784,08                 199,37
## 25            43.035.091               2.918,06               1.497,76
## 26             1.072.573               1.414,83                 170,06
tbls_ls[[1]][,2:5]  <- as.data.frame(lapply(tbls_ls[[1]][,2:5], function(x) as.numeric(gsub(",", ".", gsub("\\.", "", x)))))
head(tbls_ls[[1]], 28)
##                              isyeri_grubu islem_adet_kredi_kart
## 1                          ARABA KÄ°RALAMA                306426
## 2  ARAÇ KİRALAMA-SATIŞ/SERVİS/YEDEK PARÇA               3335321
## 3            BENZÄ°N VE YAKIT Ä°STASYONLARI              32572382
## 4                      BIREYSEL EMEKLILIK               2060390
## 5                            ÇEŞİTLİ GIDA              31076151
## 6                      DOÄžRUDAN PAZARLAMA                738068
## 7   EĞİTİM / KIRTASİYE / OFİS MALZEMELERİ               4653286
## 8    ELEKTRÄ°K-ELEKTRONÄ°K EÅžYA, BÄ°LGÄ°SAYAR               7230732
## 9                       GÄ°YÄ°M VE AKSESUAR              32253174
## 10                            HAVAYOLLARI               1792404
## 11                      HİZMET SEKTÖRLERİ              22032853
## 12                   KAMU/VERGI ODEMELERI               2740192
## 13                              KONAKLAMA               2345133
## 14       KULÃœP / DERNEK /SOSYAL HÄ°ZMETLER               1180990
## 15                KUMARHANE/İÇKİLİ YERLER                575870
## 16                             KUYUMCULAR               1099748
## 17         MARKET VE ALIÅžVERÄ°Åž MERKEZLERÄ°             105519907
## 18                  MOBÄ°LYA VE DEKORASYON               4379615
## 19                       MÃœTEAHHÄ°T Ä°ÅžLERÄ°                716433
## 20        SAÄžLIK/SAÄžLIK ÃœRÃœNLERÄ°/KOZMETÄ°K              13975225
## 21         SEYAHAT ACENTELERÄ°/TAÅžIMACILIK               7224598
## 22                                SÄ°GORTA               4513691
## 23                       TELEKOMÃœNÄ°KASYON              17915719
## 24  YAPI MALZEMELERÄ°, HIRDAVAT, NALBURÄ°YE               3786201
## 25                                  YEMEK              45687937
## 26                                  DÄ°ÄžER               4984660
##    islem_adet_banka_kart islem_tutar_kredi_kart islem_tutar_banka_kart
## 1                  77113                 256.63                  43.79
## 2                 902483                2588.91                 190.61
## 3               13813215                6515.69                1195.27
## 4                   1256                 686.98                   0.42
## 5               20446524                5147.68                 994.90
## 6                  45268                 723.68                  21.26
## 7                2585481                1426.84                 251.25
## 8                2269938                3894.15                 416.45
## 9               15240380                6116.57                2129.29
## 10                489887                1827.85                 738.50
## 11               6229279                4268.50                 713.24
## 12               1300247                1239.58                 219.70
## 13               1277480                1788.57                 544.99
## 14                283274                 305.33                  37.90
## 15                502969                 102.42                  46.49
## 16                426152                1166.39                 491.69
## 17              63410233               12353.26                2892.63
## 18               1692679                2603.43                 286.34
## 19                313869                 806.56                  45.75
## 20               7480747                2404.86                 689.25
## 21               3152401                2311.90                 620.16
## 22                 42440                2919.50                  11.44
## 23               3236866                1720.25                 247.08
## 24               1347371                2784.08                 199.37
## 25              43035091                2918.06                1497.76
## 26               1072573                1414.83                 170.06

Analysis 1: Amount of Credit Card Transactions by Sector

ggplot(tbls_ls[[1]], aes(x=isyeri_grubu, y=islem_adet_kredi_kart)) +
  geom_bar(stat="identity",fill="steelblue")+ coord_flip() + scale_y_continuous(labels=comma) +
  labs(title = "Amount of Credit Card Transactions by Sector", x="", y="") +theme_minimal()

Analysis 2: Sectors with Total Credit and Debit Card Transactions Exceeding 2000

islem_tutari_dagilim = tbls_ls[[1]] %>% 
  transmute(isyeri_grubu, toplam_islem_tutari = islem_tutar_kredi_kart + islem_tutar_banka_kart) %>% 
  arrange(desc(toplam_islem_tutari)) %>%

mutate(isyeri_grubu = case_when(toplam_islem_tutari > 2000 ~ isyeri_grubu, TRUE ~ "OTHER")) %>% group_by(isyeri_grubu) %>% 
  transmute(toplam_islem_tutari = sum(toplam_islem_tutari)) %>% distinct() %>%
  arrange(desc(toplam_islem_tutari)) %>% ungroup() %>%
mutate(dagilim = round(toplam_islem_tutari/sum(toplam_islem_tutari)*100,2))

print(islem_tutari_dagilim)
## # A tibble: 16 x 3
##    isyeri_grubu                           toplam_islem_tutari dagilim
##    <chr>                                                <dbl>   <dbl>
##  1 MARKET VE ALIÅžVERÄ°Åž MERKEZLERÄ°                      15246.   17.9 
##  2 OTHER                                               11425.   13.4 
##  3 GÄ°YÄ°M VE AKSESUAR                                    8246.    9.7 
##  4 BENZÄ°N VE YAKIT Ä°STASYONLARI                         7711.    9.07
##  5 ÇEŞİTLİ GIDA                                         6143.    7.23
##  6 HİZMET SEKTÖRLERİ                                    4982.    5.86
##  7 YEMEK                                                4416.    5.2 
##  8 ELEKTRÄ°K-ELEKTRONÄ°K EÅžYA, BÄ°LGÄ°SAYAR                 4311.    5.07
##  9 SAÄžLIK/SAÄžLIK ÃœRÃœNLERÄ°/KOZMETÄ°K                      3094.    3.64
## 10 YAPI MALZEMELERÄ°, HIRDAVAT, NALBURÄ°YE                2983.    3.51
## 11 SEYAHAT ACENTELERÄ°/TAÅžIMACILIK                       2932.    3.45
## 12 SÄ°GORTA                                              2931.    3.45
## 13 MOBÄ°LYA VE DEKORASYON                                2890.    3.4 
## 14 ARAÇ KİRALAMA-SATIŞ/SERVİS/YEDEK PARÇA               2780.    3.27
## 15 HAVAYOLLARI                                          2566.    3.02
## 16 KONAKLAMA                                            2334.    2.75
islem_tutari_dagilim %>% ggplot(data = ., aes(x = "", y = dagilim, fill = isyeri_grubu)) +
  geom_bar(width = 1, stat = "identity", color = "black") +
  coord_polar("y", start = 0)+
  geom_text(aes(x = 1.3, y = dagilim, label = percent(dagilim/100) ),position = position_stack(vjust = 0.5),color = "black")+
  labs(fill = "Sector")+
  theme_void()

To be continued :)

Sources

1: Scraping HTML Tables