1.Introduction & Import Packages

This is a worksheet of BKM Sektorel Gelisim Assignment.

The assignment’s dataset includes the January 2019 through June 2019.

We import packages we’ll use.

library("rvest")
library("tidyverse")
library("lubridate")

2.Get BKM Dataset

We downloaded dataset from the BKM website separately for each month.

Then, we create tables for each month.

raw6<- read_html("https://bkm.com.tr/secilen-aya-ait-sektorel-gelisim/?filter_year=2019&filter_month=6&List=Listele")
raw5<- read_html("https://bkm.com.tr/secilen-aya-ait-sektorel-gelisim/?filter_year=2019&filter_month=5&List=Listele")
raw4<- read_html("https://bkm.com.tr/secilen-aya-ait-sektorel-gelisim/?filter_year=2019&filter_month=4&List=Listele")
raw3<- read_html("https://bkm.com.tr/secilen-aya-ait-sektorel-gelisim/?filter_year=2019&filter_month=3&List=Listele")
raw2<- read_html("https://bkm.com.tr/secilen-aya-ait-sektorel-gelisim/?filter_year=2019&filter_month=2&List=Listele")
raw1<- read_html("https://bkm.com.tr/secilen-aya-ait-sektorel-gelisim/?filter_year=2019&filter_month=1&List=Listele")

raw_table6 <- raw6%>% html_table(fill = TRUE)
raw_table5 <- raw5%>% html_table(fill = TRUE)
raw_table4 <- raw4%>% html_table(fill = TRUE)
raw_table3 <- raw3%>% html_table(fill = TRUE)
raw_table2 <- raw2%>% html_table(fill = TRUE)
raw_table1 <- raw1%>% html_table(fill = TRUE)

table6<-raw_table6[[4]]
table5<-raw_table5[[4]]
table4<-raw_table4[[4]]
table3<-raw_table3[[4]]
table2<-raw_table2[[4]]
table1<-raw_table1[[4]]

3. Data Transformation

We add a date column to each table and change the names of all columns.

Then, we merge the tables by filtering the rows.

table6<-add_column(table6,yeni="2019-06-30")
table5<-add_column(table5,yeni="2019-05-31")
table4<-add_column(table4,yeni="2019-04-30")
table3<-add_column(table3,yeni="2019-03-31")
table2<-add_column(table2,yeni="2019-02-28")
table1<-add_column(table1,yeni="2019-01-31")

names(table1)<- c("Isyeri_Grubu","Islem_Adedi_Kredi_Karti","Islem_Adedi_Banka_Karti","Islem_Tutari_Kredi_Karti","Islem_Tutari_Banka_Karti","Tarih")
names(table2)<- c("Isyeri_Grubu","Islem_Adedi_Kredi_Karti","Islem_Adedi_Banka_Karti","Islem_Tutari_Kredi_Karti","Islem_Tutari_Banka_Karti","Tarih")
names(table3)<- c("Isyeri_Grubu","Islem_Adedi_Kredi_Karti","Islem_Adedi_Banka_Karti","Islem_Tutari_Kredi_Karti","Islem_Tutari_Banka_Karti","Tarih")
names(table4)<- c("Isyeri_Grubu","Islem_Adedi_Kredi_Karti","Islem_Adedi_Banka_Karti","Islem_Tutari_Kredi_Karti","Islem_Tutari_Banka_Karti","Tarih")
names(table5)<- c("Isyeri_Grubu","Islem_Adedi_Kredi_Karti","Islem_Adedi_Banka_Karti","Islem_Tutari_Kredi_Karti","Islem_Tutari_Banka_Karti","Tarih")
names(table6)<- c("Isyeri_Grubu","Islem_Adedi_Kredi_Karti","Islem_Adedi_Banka_Karti","Islem_Tutari_Kredi_Karti","Islem_Tutari_Banka_Karti","Tarih")

table6<-slice(table6,3:28)
table5<-slice(table5,3:28)
table4<-slice(table4,3:28)
table3<-slice(table3,3:28)
table2<-slice(table2,3:28)
table1<-slice(table1,3:28)

bkm_data<-bind_rows(table1, table2, table3, table4, table5, table6)

glimpse(bkm_data)
## Observations: 156
## Variables: 6
## $ Isyeri_Grubu             <chr> "ARABA KİRALAMA", "ARAÇ KİRALAMA-SATI...
## $ Islem_Adedi_Kredi_Karti  <chr> "256.372", "2.967.019", "25.277.186",...
## $ Islem_Adedi_Banka_Karti  <chr> "49.296", "642.136", "8.684.036", "69...
## $ Islem_Tutari_Kredi_Karti <chr> "195,13", "2.185,84", "5.066,04", "71...
## $ Islem_Tutari_Banka_Karti <chr> "14,77", "127,16", "680,01", "0,30", ...
## $ Tarih                    <chr> "2019-01-31", "2019-01-31", "2019-01-...

We convert numeric and date columns because all columns of our dataset are characters.

We are ready for analysis!

bkm_data$Tarih <- ymd(bkm_data$Tarih)

bkm_data$Islem_Adedi_Kredi_Karti<-as.numeric(gsub("\\.","",bkm_data$Islem_Adedi_Kredi_Karti))
bkm_data$Islem_Adedi_Banka_Karti<-as.numeric(gsub("\\.","",bkm_data$Islem_Adedi_Banka_Karti))
bkm_data$Islem_Tutari_Kredi_Karti<-as.numeric(gsub(",",".",gsub("\\.","",bkm_data$Islem_Tutari_Kredi_Karti)))
bkm_data$Islem_Tutari_Banka_Karti<-as.numeric(gsub(",",".",gsub("\\.","",bkm_data$Islem_Tutari_Banka_Karti)))

glimpse(bkm_data)
## Observations: 156
## Variables: 6
## $ Isyeri_Grubu             <chr> "ARABA KİRALAMA", "ARAÇ KİRALAMA-SATI...
## $ Islem_Adedi_Kredi_Karti  <dbl> 256372, 2967019, 25277186, 2271587, 2...
## $ Islem_Adedi_Banka_Karti  <dbl> 49296, 642136, 8684036, 697, 15221891...
## $ Islem_Tutari_Kredi_Karti <dbl> 195.13, 2185.84, 5066.04, 716.42, 447...
## $ Islem_Tutari_Banka_Karti <dbl> 14.77, 127.16, 680.01, 0.30, 673.70, ...
## $ Tarih                    <date> 2019-01-31, 2019-01-31, 2019-01-31, ...

4. Analysis

Sectoral Transaction Volume

sektor_orani<- bkm_data %>%
  select(Isyeri_Grubu,Islem_Adedi_Kredi_Karti,Islem_Adedi_Banka_Karti,Islem_Tutari_Kredi_Karti,Islem_Tutari_Banka_Karti,Tarih) %>%
  group_by(Isyeri_Grubu) %>%
  summarize(islem_hacmi=sum(Islem_Tutari_Kredi_Karti,Islem_Tutari_Banka_Karti)) %>%
  mutate(oran = round(islem_hacmi/sum(islem_hacmi),2)) %>%
  arrange(desc(oran)) %>%  
  print(sektor_orani)
## # A tibble: 26 x 3
##    Isyeri_Grubu                          islem_hacmi  oran
##    <chr>                                       <dbl> <dbl>
##  1 MARKET VE ALIÅžVERÄ°Åž MERKEZLERÄ°             83789.  0.18
##  2 BENZÄ°N VE YAKIT Ä°STASYONLARI               39811.  0.08
##  3 GÄ°YÄ°M VE AKSESUAR                          39850.  0.08
##  4 ÇEŞİTLİ GIDA                               33589.  0.07
##  5 HİZMET SEKTÖRLERİ                          32248.  0.07
##  6 ELEKTRÄ°K-ELEKTRONÄ°K EÅžYA, BÄ°LGÄ°SAYAR       23900.  0.05
##  7 YEMEK                                      22506.  0.05
##  8 SAÄžLIK/SAÄžLIK ÃœRÃœNLERÄ°/KOZMETÄ°K            19206.  0.04
##  9 SÄ°GORTA                                    18984.  0.04
## 10 YAPI MALZEMELERÄ°, HIRDAVAT, NALBURÄ°YE      17692.  0.04
## # ... with 16 more rows
en_iyi_on_sektor<-head(sektor_orani,10)
ggplot(data = en_iyi_on_sektor, aes(x=Isyeri_Grubu, y=oran, fill=Isyeri_Grubu)) +
  geom_bar(stat="identity")+
  coord_polar()+
  theme(legend.position = "right", axis.text.x = element_text(angle = 0))+
  geom_text(aes(y = oran , label = oran))+
  labs(title = "Sector Shares", x="", y="")

Monthly Transaction Volume

aylik<- bkm_data %>%
  arrange(desc(Tarih),desc(Islem_Tutari_Kredi_Karti)) %>%
  group_by(Tarih) %>%
  summarize(aylik_kartlar_toplami = sum(Islem_Tutari_Kredi_Karti, Islem_Tutari_Kredi_Karti)) %>%
  arrange(desc(aylik_kartlar_toplami))%>%
  print(aylik)
## # A tibble: 6 x 2
##   Tarih      aylik_kartlar_toplami
##   <date>                     <dbl>
## 1 2019-05-31               149707 
## 2 2019-06-30               140585 
## 3 2019-03-31               137915.
## 4 2019-04-30               134893.
## 5 2019-01-31               125321.
## 6 2019-02-28               115845.
ggplot(data = aylik, aes(x = workplace, y = aylik_kartlar_toplami, fill = as.character(Tarih)))+ 
  geom_bar(stat = "identity") + 
  aes(x = reorder(Tarih, -aylik_kartlar_toplami),y =aylik_kartlar_toplami) + 
  labs(x = "", y = "", title = "Monthly Transaction Volume") + 
  theme_bw() + theme( axis.text.x = element_text(angle = 90,vjust = 0.49, hjust = 0.49, size = 8)) + 
  scale_y_continuous(labels = scales::comma) + 
  scale_x_discrete(labels = c("Mayis", "Haziran","mart", "Nisan", "ocak", "Subat")) + 
  theme(legend.position = "none")