1 Generate Data frame

Suppose you are a data scientist, and you get a project at a start-up company, for instance Kopi Kenangan. Let’s say, you are asking to generate the collection of any possible data set from their daily sales. If I asking you: what kind of data set that you can generate?. Here, I assume you want to provide them the following data set:

  • Id : there are 5000 transactions.
  • Date: daily 5000 transactions, start from 2018/01/01.
  • Name: create 20 random cashier names (you can use names of your classmate including your self) to cover all 5000 transactions at Kopi Kenangan.
  • City: allocate this 5000 transactions to the biggest cities in Indonesia (with the same proportion). Here I assume,
    • Jakarta
    • Bogor
    • Depok
    • Tangerang
    • Bekasi
  • Outlet: allocate this 5000 transactions in five outlets. Here I assume,
    • Outlet 1
    • Outlet 2
    • Outlet 3
    • Outlet 4
    • Outlet 5
  • Menu: generate random sales of 5000 menu items at Kopi Kenangan every day. Here, I assume,
    • Cappucino
    • Es Kopi Susu
    • Hot Caramel Latte
    • Hot Chocolate
    • Hot Red Velvet Latte
    • Ice Americano
    • Ice Berry Coffe
    • Ice Cafe Latte
    • Ice Caramel Latte
    • Ice Coffee Avocado
    • Ice Coffee Lite
    • Ice Matcha Espresso
    • Ice Matcha Latte
    • Ice Red Velvet Latte
  • Price: generate random prices for each menu items above (min=18000, and max=45000)
  • Discount: generate random discounts for each menu items above (min=0.05, and max=0.12)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
Id<-(1:5000)
Date<-seq(as.Date("2018/01/01"),by="day",length.out=5000)
Name<-sample(c('Vanessa','Nikita','Julian','Jocelyn','Jeffry','Sofia','Angel','Kefas','Ahmad','Deven','Maungzy','Celiboy','Zack','Qwynnzy','Reyzo','Andre','Kolop','Gloxenia','Bakti Siregar','Roger'),5000,replace=TRUE)
City1<-rep("Jakarta",times=1000)
City2<-rep("Bogor",times=1000)
City3<-rep("Depok",times=1000)
City4<-rep("Tangerang",times=1000)
City5<-rep("Bekasi",times=1000)
City<-sample(c(City1,City2,City3,City4,City5))

Outlet<-sample(c('Outlet 1','Outlet 2','Outlet 3','Outlet 4','Outlet 5'),5000,replace=TRUE)

Menu<-sample(c('Cappucino','Es Kopi Susu','Hot Caramel Latte','Hot Chocolate','Hot Red Velvet Latte','Ice Americano','Ice Berry Coffe','Ice Cafe Latte','Ice Caramel Latte','Ice Coffee Avocado','Ice Coffee Lite','Ice Matcha Espresso','Ice Matcha Espresso','Ice Matcha Latte','Ice Red Velvet Latte'),5000,replace=TRUE)

price<-runif(Menu,min=18000,max=45000)
Price<-round(price,digits=0)

discount<-runif(Menu,min=0.05,max=0.12)
Discount<-round(discount,digits=2)

KopiKenangan<-data.frame(Id,
                          Date,
                          Name,
                          City,
                          Outlet,
                          Menu,
                          Price,
                          Discount)
KopiKenangan%>%head(20)
##    Id       Date    Name      City   Outlet                 Menu Price Discount
## 1   1 2018-01-01    Zack    Bekasi Outlet 5         Es Kopi Susu 37910     0.11
## 2   2 2018-01-02   Roger Tangerang Outlet 1       Ice Cafe Latte 34473     0.07
## 3   3 2018-01-03   Kolop   Jakarta Outlet 5      Ice Coffee Lite 29964     0.07
## 4   4 2018-01-04  Julian     Bogor Outlet 2 Hot Red Velvet Latte 30909     0.12
## 5   5 2018-01-05 Jocelyn     Depok Outlet 3      Ice Coffee Lite 23372     0.11
## 6   6 2018-01-06   Sofia     Bogor Outlet 2       Ice Cafe Latte 38700     0.10
## 7   7 2018-01-07   Roger   Jakarta Outlet 5   Ice Coffee Avocado 35835     0.11
## 8   8 2018-01-08  Jeffry Tangerang Outlet 3   Ice Coffee Avocado 24132     0.10
## 9   9 2018-01-09   Ahmad Tangerang Outlet 4  Ice Matcha Espresso 23071     0.11
## 10 10 2018-01-10  Julian     Bogor Outlet 3      Ice Berry Coffe 33729     0.08
## 11 11 2018-01-11 Qwynnzy   Jakarta Outlet 3    Ice Caramel Latte 24266     0.07
## 12 12 2018-01-12   Angel     Bogor Outlet 4    Hot Caramel Latte 23594     0.05
## 13 13 2018-01-13   Roger     Bogor Outlet 4        Hot Chocolate 21671     0.08
## 14 14 2018-01-14   Sofia     Depok Outlet 3   Ice Coffee Avocado 39613     0.10
## 15 15 2018-01-15  Jeffry     Bogor Outlet 5         Es Kopi Susu 20610     0.09
## 16 16 2018-01-16   Deven     Bogor Outlet 3        Ice Americano 29616     0.08
## 17 17 2018-01-17   Deven     Depok Outlet 1    Hot Caramel Latte 30065     0.06
## 18 18 2018-01-18   Ahmad     Depok Outlet 5        Ice Americano 42604     0.09
## 19 19 2018-01-19   Andre    Bekasi Outlet 1     Ice Matcha Latte 32530     0.07
## 20 20 2018-01-20   Angel   Jakarta Outlet 2 Ice Red Velvet Latte 19951     0.10

2 Extraction

In this section, your expecter to be able apply a very basic data frame manipulation called Extraction. Please cover the following tasks:

  • Extract all data set or transactions at Kopi Kenangan, in the specific city for instance Jakarta.
library(dplyr)
Jakarta<-KopiKenangan%>%filter(City=="Jakarta")%>%head(20)%>%print()
##     Id       Date          Name    City   Outlet                 Menu Price
## 1    3 2018-01-03         Kolop Jakarta Outlet 5      Ice Coffee Lite 29964
## 2    7 2018-01-07         Roger Jakarta Outlet 5   Ice Coffee Avocado 35835
## 3   11 2018-01-11       Qwynnzy Jakarta Outlet 3    Ice Caramel Latte 24266
## 4   20 2018-01-20         Angel Jakarta Outlet 2 Ice Red Velvet Latte 19951
## 5   28 2018-01-28       Maungzy Jakarta Outlet 5   Ice Coffee Avocado 41142
## 6   30 2018-01-30 Bakti Siregar Jakarta Outlet 2            Cappucino 38276
## 7   31 2018-01-31         Angel Jakarta Outlet 4    Hot Caramel Latte 42997
## 8   38 2018-02-07         Kefas Jakarta Outlet 1  Ice Matcha Espresso 32877
## 9   41 2018-02-10         Roger Jakarta Outlet 4         Es Kopi Susu 20348
## 10  42 2018-02-11      Gloxenia Jakarta Outlet 4        Hot Chocolate 44974
## 11  44 2018-02-13        Jeffry Jakarta Outlet 5   Ice Coffee Avocado 40639
## 12  65 2018-03-06        Jeffry Jakarta Outlet 5         Es Kopi Susu 43877
## 13  66 2018-03-07        Julian Jakarta Outlet 5       Ice Cafe Latte 28213
## 14  73 2018-03-14         Deven Jakarta Outlet 4       Ice Cafe Latte 38357
## 15  80 2018-03-21       Jocelyn Jakarta Outlet 3  Ice Matcha Espresso 27899
## 16  91 2018-04-01         Kefas Jakarta Outlet 3      Ice Berry Coffe 23920
## 17  93 2018-04-03         Ahmad Jakarta Outlet 5            Cappucino 26310
## 18  99 2018-04-09          Zack Jakarta Outlet 4      Ice Coffee Lite 25089
## 19 103 2018-04-13          Zack Jakarta Outlet 2       Ice Cafe Latte 28550
## 20 104 2018-04-14         Andre Jakarta Outlet 1   Ice Coffee Avocado 25947
##    Discount
## 1      0.07
## 2      0.11
## 3      0.07
## 4      0.10
## 5      0.07
## 6      0.09
## 7      0.08
## 8      0.09
## 9      0.06
## 10     0.08
## 11     0.12
## 12     0.12
## 13     0.05
## 14     0.07
## 15     0.11
## 16     0.08
## 17     0.12
## 18     0.09
## 19     0.11
## 20     0.05
  • Extract all data set or transactions at Kopi Kenangan, in the specific menu for instance Hot Chocolate.
library(dplyr)
'Hot Chocolate'<-KopiKenangan%>%filter(Menu=="Hot Chocolate")%>%head(20)%>%print()
##     Id       Date          Name      City   Outlet          Menu Price Discount
## 1   13 2018-01-13         Roger     Bogor Outlet 4 Hot Chocolate 21671     0.08
## 2   35 2018-02-04       Jocelyn    Bekasi Outlet 4 Hot Chocolate 32786     0.08
## 3   42 2018-02-11      Gloxenia   Jakarta Outlet 4 Hot Chocolate 44974     0.08
## 4   52 2018-02-21       Qwynnzy     Bogor Outlet 2 Hot Chocolate 34712     0.07
## 5   56 2018-02-25         Sofia    Bekasi Outlet 2 Hot Chocolate 42267     0.10
## 6  106 2018-04-16       Jocelyn     Depok Outlet 2 Hot Chocolate 27001     0.08
## 7  122 2018-05-02         Andre    Bekasi Outlet 2 Hot Chocolate 44699     0.07
## 8  138 2018-05-18 Bakti Siregar   Jakarta Outlet 5 Hot Chocolate 30438     0.10
## 9  220 2018-08-08       Jocelyn    Bekasi Outlet 1 Hot Chocolate 35892     0.10
## 10 243 2018-08-31         Deven   Jakarta Outlet 3 Hot Chocolate 33744     0.08
## 11 287 2018-10-14         Kefas Tangerang Outlet 2 Hot Chocolate 34968     0.11
## 12 291 2018-10-18       Qwynnzy    Bekasi Outlet 1 Hot Chocolate 41124     0.11
## 13 294 2018-10-21         Kefas     Depok Outlet 2 Hot Chocolate 34707     0.07
## 14 310 2018-11-06        Jeffry   Jakarta Outlet 2 Hot Chocolate 31562     0.05
## 15 314 2018-11-10         Reyzo     Depok Outlet 1 Hot Chocolate 31870     0.06
## 16 327 2018-11-23         Reyzo Tangerang Outlet 5 Hot Chocolate 40393     0.08
## 17 345 2018-12-11 Bakti Siregar Tangerang Outlet 2 Hot Chocolate 22622     0.07
## 18 366 2019-01-01 Bakti Siregar    Bekasi Outlet 2 Hot Chocolate 27686     0.10
## 19 374 2019-01-09        Jeffry     Bogor Outlet 2 Hot Chocolate 29886     0.05
## 20 390 2019-01-25       Qwynnzy     Bogor Outlet 2 Hot Chocolate 38743     0.11
  • Extract all data set or transactions at Kopi Kenangan, in the specific cashier names for instance Bakti Siregar.
library(dplyr)
'Bakti Siregar'<-KopiKenangan%>%filter(Name=="Bakti Siregar")%>%head(20)%>%print()
##     Id       Date          Name      City   Outlet                 Menu Price
## 1   30 2018-01-30 Bakti Siregar   Jakarta Outlet 2            Cappucino 38276
## 2   54 2018-02-23 Bakti Siregar    Bekasi Outlet 5   Ice Coffee Avocado 30829
## 3   55 2018-02-24 Bakti Siregar    Bekasi Outlet 1 Hot Red Velvet Latte 18354
## 4   70 2018-03-11 Bakti Siregar Tangerang Outlet 4 Ice Red Velvet Latte 21633
## 5   75 2018-03-16 Bakti Siregar     Bogor Outlet 4 Ice Red Velvet Latte 31008
## 6   84 2018-03-25 Bakti Siregar     Depok Outlet 5  Ice Matcha Espresso 44887
## 7  138 2018-05-18 Bakti Siregar   Jakarta Outlet 5        Hot Chocolate 30438
## 8  183 2018-07-02 Bakti Siregar   Jakarta Outlet 4   Ice Coffee Avocado 30524
## 9  185 2018-07-04 Bakti Siregar   Jakarta Outlet 4  Ice Matcha Espresso 43429
## 10 204 2018-07-23 Bakti Siregar    Bekasi Outlet 4      Ice Coffee Lite 38385
## 11 209 2018-07-28 Bakti Siregar    Bekasi Outlet 1  Ice Matcha Espresso 29210
## 12 216 2018-08-04 Bakti Siregar Tangerang Outlet 1        Ice Americano 27931
## 13 221 2018-08-09 Bakti Siregar    Bekasi Outlet 1    Ice Caramel Latte 19993
## 14 229 2018-08-17 Bakti Siregar Tangerang Outlet 1      Ice Coffee Lite 36171
## 15 250 2018-09-07 Bakti Siregar   Jakarta Outlet 1    Ice Caramel Latte 41580
## 16 273 2018-09-30 Bakti Siregar Tangerang Outlet 5      Ice Berry Coffe 25781
## 17 302 2018-10-29 Bakti Siregar   Jakarta Outlet 1   Ice Coffee Avocado 39409
## 18 307 2018-11-03 Bakti Siregar Tangerang Outlet 4         Es Kopi Susu 43265
## 19 319 2018-11-15 Bakti Siregar     Bogor Outlet 5            Cappucino 43775
## 20 333 2018-11-29 Bakti Siregar   Jakarta Outlet 2    Hot Caramel Latte 29571
##    Discount
## 1      0.09
## 2      0.09
## 3      0.09
## 4      0.10
## 5      0.10
## 6      0.09
## 7      0.10
## 8      0.11
## 9      0.06
## 10     0.09
## 11     0.09
## 12     0.09
## 13     0.05
## 14     0.10
## 15     0.08
## 16     0.09
## 17     0.08
## 18     0.09
## 19     0.06
## 20     0.09
  • Extract all data set or transactions at Kopi Kenangan, in the specific price for instance >=40000.
library(dplyr)
'price(>40000)'<-KopiKenangan%>%filter(Price>=40000)%>%head(20)%>%print()
##    Id       Date          Name      City   Outlet                 Menu Price
## 1  18 2018-01-18         Ahmad     Depok Outlet 5        Ice Americano 42604
## 2  21 2018-01-21          Zack     Depok Outlet 2       Ice Cafe Latte 44017
## 3  23 2018-01-23        Jeffry     Depok Outlet 3    Ice Caramel Latte 43145
## 4  25 2018-01-25       Jocelyn Tangerang Outlet 5       Ice Cafe Latte 43603
## 5  28 2018-01-28       Maungzy   Jakarta Outlet 5   Ice Coffee Avocado 41142
## 6  31 2018-01-31         Angel   Jakarta Outlet 4    Hot Caramel Latte 42997
## 7  32 2018-02-01       Celiboy    Bekasi Outlet 1         Es Kopi Susu 41206
## 8  36 2018-02-05         Roger     Bogor Outlet 4            Cappucino 44394
## 9  42 2018-02-11      Gloxenia   Jakarta Outlet 4        Hot Chocolate 44974
## 10 44 2018-02-13        Jeffry   Jakarta Outlet 5   Ice Coffee Avocado 40639
## 11 47 2018-02-16         Kefas     Bogor Outlet 2 Hot Red Velvet Latte 41805
## 12 50 2018-02-19          Zack     Bogor Outlet 5    Ice Caramel Latte 41540
## 13 56 2018-02-25         Sofia    Bekasi Outlet 2        Hot Chocolate 42267
## 14 63 2018-03-04         Reyzo Tangerang Outlet 3    Ice Caramel Latte 42985
## 15 65 2018-03-06        Jeffry   Jakarta Outlet 5         Es Kopi Susu 43877
## 16 67 2018-03-08         Deven Tangerang Outlet 3            Cappucino 42365
## 17 71 2018-03-12         Reyzo Tangerang Outlet 4      Ice Coffee Lite 40101
## 18 84 2018-03-25 Bakti Siregar     Depok Outlet 5  Ice Matcha Espresso 44887
## 19 92 2018-04-02         Angel    Bekasi Outlet 1 Ice Red Velvet Latte 42493
## 20 95 2018-04-05       Celiboy     Bogor Outlet 2 Ice Red Velvet Latte 41099
##    Discount
## 1      0.09
## 2      0.11
## 3      0.07
## 4      0.05
## 5      0.07
## 6      0.08
## 7      0.12
## 8      0.08
## 9      0.08
## 10     0.12
## 11     0.06
## 12     0.07
## 13     0.10
## 14     0.07
## 15     0.12
## 16     0.09
## 17     0.10
## 18     0.09
## 19     0.11
## 20     0.05
  • Add a new variable, call Total_Price to your data frame (data frame that you have done above)
library(dplyr)
KopiKenangan$Total_Price<-KopiKenangan$Price-(KopiKenangan$Price*KopiKenangan$Discount)
KopiKenangan%>%head(20)                                              
##    Id       Date    Name      City   Outlet                 Menu Price Discount
## 1   1 2018-01-01    Zack    Bekasi Outlet 5         Es Kopi Susu 37910     0.11
## 2   2 2018-01-02   Roger Tangerang Outlet 1       Ice Cafe Latte 34473     0.07
## 3   3 2018-01-03   Kolop   Jakarta Outlet 5      Ice Coffee Lite 29964     0.07
## 4   4 2018-01-04  Julian     Bogor Outlet 2 Hot Red Velvet Latte 30909     0.12
## 5   5 2018-01-05 Jocelyn     Depok Outlet 3      Ice Coffee Lite 23372     0.11
## 6   6 2018-01-06   Sofia     Bogor Outlet 2       Ice Cafe Latte 38700     0.10
## 7   7 2018-01-07   Roger   Jakarta Outlet 5   Ice Coffee Avocado 35835     0.11
## 8   8 2018-01-08  Jeffry Tangerang Outlet 3   Ice Coffee Avocado 24132     0.10
## 9   9 2018-01-09   Ahmad Tangerang Outlet 4  Ice Matcha Espresso 23071     0.11
## 10 10 2018-01-10  Julian     Bogor Outlet 3      Ice Berry Coffe 33729     0.08
## 11 11 2018-01-11 Qwynnzy   Jakarta Outlet 3    Ice Caramel Latte 24266     0.07
## 12 12 2018-01-12   Angel     Bogor Outlet 4    Hot Caramel Latte 23594     0.05
## 13 13 2018-01-13   Roger     Bogor Outlet 4        Hot Chocolate 21671     0.08
## 14 14 2018-01-14   Sofia     Depok Outlet 3   Ice Coffee Avocado 39613     0.10
## 15 15 2018-01-15  Jeffry     Bogor Outlet 5         Es Kopi Susu 20610     0.09
## 16 16 2018-01-16   Deven     Bogor Outlet 3        Ice Americano 29616     0.08
## 17 17 2018-01-17   Deven     Depok Outlet 1    Hot Caramel Latte 30065     0.06
## 18 18 2018-01-18   Ahmad     Depok Outlet 5        Ice Americano 42604     0.09
## 19 19 2018-01-19   Andre    Bekasi Outlet 1     Ice Matcha Latte 32530     0.07
## 20 20 2018-01-20   Angel   Jakarta Outlet 2 Ice Red Velvet Latte 19951     0.10
##    Total_Price
## 1     33739.90
## 2     32059.89
## 3     27866.52
## 4     27199.92
## 5     20801.08
## 6     34830.00
## 7     31893.15
## 8     21718.80
## 9     20533.19
## 10    31030.68
## 11    22567.38
## 12    22414.30
## 13    19937.32
## 14    35651.70
## 15    18755.10
## 16    27246.72
## 17    28261.10
## 18    38769.64
## 19    30252.90
## 20    17955.90
  • Add a new variable, call Category_Price to your data frame (data frame that you have done above), Here, I assume: “expensive”, “so-so”, and “cheap”.
library(dplyr)
KopiKenangan$Category_Price<-ifelse(KopiKenangan$Price>36000,"Expensive",ifelse(KopiKenangan$Price>27000,"so-so","cheap"))
KopiKenangan%>%head(20)
##    Id       Date    Name      City   Outlet                 Menu Price Discount
## 1   1 2018-01-01    Zack    Bekasi Outlet 5         Es Kopi Susu 37910     0.11
## 2   2 2018-01-02   Roger Tangerang Outlet 1       Ice Cafe Latte 34473     0.07
## 3   3 2018-01-03   Kolop   Jakarta Outlet 5      Ice Coffee Lite 29964     0.07
## 4   4 2018-01-04  Julian     Bogor Outlet 2 Hot Red Velvet Latte 30909     0.12
## 5   5 2018-01-05 Jocelyn     Depok Outlet 3      Ice Coffee Lite 23372     0.11
## 6   6 2018-01-06   Sofia     Bogor Outlet 2       Ice Cafe Latte 38700     0.10
## 7   7 2018-01-07   Roger   Jakarta Outlet 5   Ice Coffee Avocado 35835     0.11
## 8   8 2018-01-08  Jeffry Tangerang Outlet 3   Ice Coffee Avocado 24132     0.10
## 9   9 2018-01-09   Ahmad Tangerang Outlet 4  Ice Matcha Espresso 23071     0.11
## 10 10 2018-01-10  Julian     Bogor Outlet 3      Ice Berry Coffe 33729     0.08
## 11 11 2018-01-11 Qwynnzy   Jakarta Outlet 3    Ice Caramel Latte 24266     0.07
## 12 12 2018-01-12   Angel     Bogor Outlet 4    Hot Caramel Latte 23594     0.05
## 13 13 2018-01-13   Roger     Bogor Outlet 4        Hot Chocolate 21671     0.08
## 14 14 2018-01-14   Sofia     Depok Outlet 3   Ice Coffee Avocado 39613     0.10
## 15 15 2018-01-15  Jeffry     Bogor Outlet 5         Es Kopi Susu 20610     0.09
## 16 16 2018-01-16   Deven     Bogor Outlet 3        Ice Americano 29616     0.08
## 17 17 2018-01-17   Deven     Depok Outlet 1    Hot Caramel Latte 30065     0.06
## 18 18 2018-01-18   Ahmad     Depok Outlet 5        Ice Americano 42604     0.09
## 19 19 2018-01-19   Andre    Bekasi Outlet 1     Ice Matcha Latte 32530     0.07
## 20 20 2018-01-20   Angel   Jakarta Outlet 2 Ice Red Velvet Latte 19951     0.10
##    Total_Price Category_Price
## 1     33739.90      Expensive
## 2     32059.89          so-so
## 3     27866.52          so-so
## 4     27199.92          so-so
## 5     20801.08          cheap
## 6     34830.00      Expensive
## 7     31893.15          so-so
## 8     21718.80          cheap
## 9     20533.19          cheap
## 10    31030.68          so-so
## 11    22567.38          cheap
## 12    22414.30          cheap
## 13    19937.32          cheap
## 14    35651.70      Expensive
## 15    18755.10          cheap
## 16    27246.72          so-so
## 17    28261.10          so-so
## 18    38769.64      Expensive
## 19    30252.90          so-so
## 20    17955.90          cheap

3 Renames Data Frame

Please rename all variables of your data frame (data frame that you have done above) in your language.

library(dplyr)
rename_1<-KopiKenangan
names(rename_1)<-c("Nomor","Tanggal","Nama","Kota","Toko","Daftar Minuman","Harga","Potongan","Total_harga","Kategori_harga")
rename_1%>%head(20)
##    Nomor    Tanggal    Nama      Kota     Toko       Daftar Minuman Harga
## 1      1 2018-01-01    Zack    Bekasi Outlet 5         Es Kopi Susu 37910
## 2      2 2018-01-02   Roger Tangerang Outlet 1       Ice Cafe Latte 34473
## 3      3 2018-01-03   Kolop   Jakarta Outlet 5      Ice Coffee Lite 29964
## 4      4 2018-01-04  Julian     Bogor Outlet 2 Hot Red Velvet Latte 30909
## 5      5 2018-01-05 Jocelyn     Depok Outlet 3      Ice Coffee Lite 23372
## 6      6 2018-01-06   Sofia     Bogor Outlet 2       Ice Cafe Latte 38700
## 7      7 2018-01-07   Roger   Jakarta Outlet 5   Ice Coffee Avocado 35835
## 8      8 2018-01-08  Jeffry Tangerang Outlet 3   Ice Coffee Avocado 24132
## 9      9 2018-01-09   Ahmad Tangerang Outlet 4  Ice Matcha Espresso 23071
## 10    10 2018-01-10  Julian     Bogor Outlet 3      Ice Berry Coffe 33729
## 11    11 2018-01-11 Qwynnzy   Jakarta Outlet 3    Ice Caramel Latte 24266
## 12    12 2018-01-12   Angel     Bogor Outlet 4    Hot Caramel Latte 23594
## 13    13 2018-01-13   Roger     Bogor Outlet 4        Hot Chocolate 21671
## 14    14 2018-01-14   Sofia     Depok Outlet 3   Ice Coffee Avocado 39613
## 15    15 2018-01-15  Jeffry     Bogor Outlet 5         Es Kopi Susu 20610
## 16    16 2018-01-16   Deven     Bogor Outlet 3        Ice Americano 29616
## 17    17 2018-01-17   Deven     Depok Outlet 1    Hot Caramel Latte 30065
## 18    18 2018-01-18   Ahmad     Depok Outlet 5        Ice Americano 42604
## 19    19 2018-01-19   Andre    Bekasi Outlet 1     Ice Matcha Latte 32530
## 20    20 2018-01-20   Angel   Jakarta Outlet 2 Ice Red Velvet Latte 19951
##    Potongan Total_harga Kategori_harga
## 1      0.11    33739.90      Expensive
## 2      0.07    32059.89          so-so
## 3      0.07    27866.52          so-so
## 4      0.12    27199.92          so-so
## 5      0.11    20801.08          cheap
## 6      0.10    34830.00      Expensive
## 7      0.11    31893.15          so-so
## 8      0.10    21718.80          cheap
## 9      0.11    20533.19          cheap
## 10     0.08    31030.68          so-so
## 11     0.07    22567.38          cheap
## 12     0.05    22414.30          cheap
## 13     0.08    19937.32          cheap
## 14     0.10    35651.70      Expensive
## 15     0.09    18755.10          cheap
## 16     0.08    27246.72          so-so
## 17     0.06    28261.10          so-so
## 18     0.09    38769.64      Expensive
## 19     0.07    30252.90          so-so
## 20     0.10    17955.90          cheap

4 Case Study

According to your data frame, pleas provide me the following tasks:

  • Find out the frequency of sales of which menu items are best-selling in Kopi Kenangan!
library(dplyr)
Menu.freq<-data.frame(table(KopiKenangan$Menu))
max_menu<-max(Menu.freq$Freq)
Most_sales_menu<-Menu.freq%>%filter(Freq==max_menu)%>%print()
##                  Var1 Freq
## 1 Ice Matcha Espresso  636
  • Find out which city got the most sales!
library(dplyr)
Cityprice<-data.frame(KopiKenangan$City,KopiKenangan$Price)
Jakarta.Sales<-Cityprice%>%filter(City=="Jakarta")
Jakarta.Sales.sum<-sum(Jakarta.Sales[,2])
Bogor.Sales<-Cityprice%>%filter(City=="Bogor")
Bogor.Sales.sum<-sum(Bogor.Sales[,2])
Depok.Sales<-Cityprice%>%filter(City=="Depok")
Depok.Sales.sum<-sum(Depok.Sales[,2])
Tangerang.Sales<-Cityprice%>%filter(City=="Tangerang")
Tangerang.Sales.sum<-sum(Tangerang.Sales[,2])
Bekasi.Sales<-Cityprice%>%filter(City=="Bekasi")
Bekasi.Sales.sum<-sum(Bekasi.Sales[,2])
sales_table<-data.frame(Jakarta.Sales.sum,Bogor.Sales.sum,Depok.Sales.sum,Tangerang.Sales.sum,Bekasi.Sales.sum)
max_sales<-max(sales_table)
Most_sales_city<-sales_table[order(sales_table,decreasing=T)]
Most_sales_city
##   Jakarta.Sales.sum Bekasi.Sales.sum Depok.Sales.sum Bogor.Sales.sum
## 1          32035673         31860070        31738978        31595861
##   Tangerang.Sales.sum
## 1            31458279
City_sales<-aggregate(KopiKenangan$Price,list(KopiKenangan$City),FUN=sum)
Max_sales<-max(City_sales$x)
Most_sales_city<-City_sales%>%filter(x==Max_sales)%>%head(1)%>%print()
##   Group.1        x
## 1 Jakarta 32035673
  • Find out which city has the most discounted sales!
library(dplyr)
Citydiscount<-data.frame(KopiKenangan$City,KopiKenangan$Discount)
Jakarta.discount<-Citydiscount%>%filter(City=="Jakarta")
Jakarta.discount.sum<-sum(Jakarta.discount[,2])
Bogor.discount<-Citydiscount%>%filter(City=="Bogor")
Bogor.discount.sum<-sum(Bogor.discount[,2])
Depok.discount<-Citydiscount%>%filter(City=="Depok")
Depok.discount.sum<-sum(Depok.discount[,2])
Tangerang.discount<-Citydiscount%>%filter(City=="Tangerang")
Tangerang.discount.sum<-sum(Tangerang.discount[,2])
Bekasi.discount<-Citydiscount%>%filter(City=="Bekasi")
Bekasi.discount.sum<-sum(Bekasi.discount[,2])
discount_table<-data.frame(Jakarta.discount.sum,Bogor.discount.sum,Depok.discount.sum,Tangerang.discount.sum,Bekasi.discount.sum)
max_discount<-max(discount_table)
Most_discount_city<-discount_table[order(discount_table,decreasing=T)]
Most_discount_city
##   Bekasi.discount.sum Bogor.discount.sum Jakarta.discount.sum
## 1               85.72              85.69                 85.2
##   Depok.discount.sum Tangerang.discount.sum
## 1              84.59                  83.35
City_discount<-aggregate(KopiKenangan$Discount,list(KopiKenangan$City),FUN=sum)
Max_discount<-max(City_discount$x)
Most_sales_city<-City_discount%>%filter(x==Max_discount)%>%print()
##   Group.1     x
## 1  Bekasi 85.72
  • what year were the most sales?
library(dplyr)
year<-format(Date,"%Y")
sales_year<-aggregate(KopiKenangan$Price,list(year),sum)
most_sales_year<-sales_year%>%filter(x==max(sales_year$x))%>%print()
##   Group.1        x
## 1    2020 11721601

we can use tapply() fucntion

library(dplyr)
year      <-format(Date,"%Y")
sales_year<- tapply(KopiKenangan$Price,year,sum)
most_sales_year<-sales_year[sales_year==max(sales_year)]%>%print()
##     2020 
## 11721601