library(plotly)
## Loading required package: ggplot2
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.1 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ lubridate 1.9.2 ✔ tibble 3.2.1
## ✔ purrr 1.0.1 ✔ tidyr 1.3.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks plotly::filter(), stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(googlesheets4)
library(readxl)
library(writexl)
library(tidyjson)
##
## Attaching package: 'tidyjson'
##
## The following object is masked from 'package:stats':
##
## filter
library(jsonlite)
##
## Attaching package: 'jsonlite'
##
## The following object is masked from 'package:tidyjson':
##
## read_json
##
## The following object is masked from 'package:purrr':
##
## flatten
session <- read_xlsx("./sessions.xlsx")
views <- c(
"ScanQR_Mainpage_View",
"QrPayment_Initialization_View",
"QrPayment_Confirmation_View",
"QrPayment_Authentication_View",
"QrPayment_Success"
)
cnt <- numeric(length(views))
for (i in 1:length(views)) {
filtered <- session
for (y in 1:i) {
filtered <- filtered %>%
filter(grepl(views[y], event))
}
cnt[i] <- nrow(filtered)
}
names(cnt) <- views
cnt2 <- c(
session %>% filter(grepl(views[1], event)) %>% nrow,
session %>% filter(grepl(views[2], event)) %>% nrow,
session %>% filter(grepl(views[3], event)) %>% nrow,
session %>% filter(grepl(views[4], event)) %>% nrow,
session %>% filter(grepl(views[5], event)) %>% nrow
)
names(cnt2) <- views
fig1 <- plot_ly(name = 'Cách cũ') %>%
add_trace(
type = "funnel",
y = names(cnt2),
x = cnt2
) %>%
layout(yaxis = list(
categoryarray = names(cnt2)
))
fig2 <- plot_ly(name = 'Cách mới') %>%
add_trace(
type = "funnel",
y = names(cnt),
x = cnt
) %>%
layout(yaxis = list(
categoryarray = names(cnt)
))
subplot(fig1, fig2, nrows = 2)