Trigger Analyze
ID, Phone and User
ID, Phone and User
Project of IT Fizo Team
1 Import Library Needed for analyze & viasualization
library(tidyverse)
library(gghighlight)
library(readxl)
library(dplyr)
library(ggplot2)
library(treemapify)
library(ggcorrplot)
2 Import Data
rm(list = ls())
<- read_excel("Df/ratio8-12.xlsx") ratio8_12
- Add Columns Ratio_idTriggerLast1d, Ratio_phoneTriggerLast1d, Ratio_userTriggerLast1d and order again by totalAppDay
<- ratio8_12 %>%
new_ratio mutate(Ratio_idTriggerLast1d = idTriggerDay / totalAppDay) %>%
mutate(Ratio_phoneTriggerLast1d = phoneTriggerDay / totalAppDay) %>%
mutate(Ratio_userTriggerLast1d = userTriggerDay / totalAppDay) %>%
arrange(desc( totalAppDay ))
Optional: Note that the data collect in day 2022-12-8 thoroughly cleaned all the zero(which made dataset bias)
# new_ratio[new_ratio == 0] <-NA
- A Brief overview of the data set
glimpse(new_ratio)
## Rows: 10,436
## Columns: 38
## $ vnpostusername <chr> "93.0179", "trilm01", "25.0116", "41.0824",…
## $ idTriggerDay <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ phoneTriggerDay <dbl> 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ userTriggerDay <dbl> 3, 2, 1, 1, 0, 0, 6, 0, 3, 1, 4, 2, 1, 4, 1…
## $ totalAppDay <dbl> 21, 20, 18, 17, 16, 15, 14, 13, 12, 12, 11,…
## $ totalApp7Day <dbl> 2, 2, 5, 41, 46, 19, 4, 36, 20, 10, 37, 30,…
## $ totalApp30Day <dbl> 2, 140, 5, 216, 84, 19, 4, 91, 20, 10, 99, …
## $ idTriggerLast7d <dbl> 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0…
## $ phoneTriggerLast7d <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0…
## $ userTriggerLast7d <dbl> 0, 0, 0, 1, 7, 3, 2, 0, 6, 1, 7, 5, 5, 3, 3…
## $ idTriggerLast30d <dbl> 0, 1, 0, 3, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0…
## $ phoneTriggerLast30d <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0…
## $ userTriggerLast30d <dbl> 0, 2, 0, 5, 10, 3, 2, 2, 6, 1, 27, 5, 5, 3,…
## $ idTriggerLast7day <dbl> 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0…
## $ phoneTriggerLast7day <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0…
## $ userTriggerLast7day <dbl> 0, 0, 0, 1, 7, 3, 2, 0, 6, 1, 7, 5, 5, 3, 3…
## $ totalAppLast7Day <dbl> 2, 2, 5, 41, 46, 19, 4, 36, 20, 10, 37, 30,…
## $ idTriggerLast30day <dbl> 0, 1, 0, 3, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0…
## $ phoneTriggerLast30day <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0…
## $ userTriggerLast30day <dbl> 0, 2, 0, 5, 10, 3, 2, 2, 6, 1, 27, 5, 5, 3,…
## $ totalAppLast30Day <dbl> 2, 140, 5, 216, 84, 19, 4, 91, 20, 10, 99, …
## $ Ratio_idTriggerLast7d <dbl> 0.00000000, 0.00000000, 0.00000000, 0.00000…
## $ Ratio_phoneTriggerLast7d <dbl> 0.00000000, 0.00000000, 0.00000000, 0.00000…
## $ Ratio_userTriggerLast7d <dbl> 0.00000000, 0.00000000, 0.00000000, 0.02439…
## $ Ratio_idTriggerLast30d <dbl> 0.000000000, 0.007142857, 0.000000000, 0.01…
## $ Ratio_phoneTriggerLast30d <dbl> 0.000000000, 0.000000000, 0.000000000, 0.00…
## $ Ratio_userTriggerLast30d <dbl> 0.00000000, 0.01428571, 0.00000000, 0.02314…
## $ Velo_idTriggerLast7day <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ Velo_phoneTriggerLast7day <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ Velo_userTriggerLast7day <dbl> NA, NA, NA, NA, 0, NA, NA, NA, 3, NA, 4, 2,…
## $ Velo_totalAppLast7Day <dbl> NA, NA, 18.000000, 2.833333, 2.285714, 5.00…
## $ Velo_idTriggerLast30day <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ Velo_phoneTriggerLast30day <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ Velo_userTriggerLast30day <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 4, …
## $ Velo_totalAppLast30Day <dbl> NA, 4.000000, NA, 2.428571, 5.333333, 15.00…
## $ Ratio_idTriggerLast1d <dbl> 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0…
## $ Ratio_phoneTriggerLast1d <dbl> 0.04761905, 0.00000000, 0.00000000, 0.00000…
## $ Ratio_userTriggerLast1d <dbl> 0.14285714, 0.10000000, 0.05555556, 0.05882…
- Consider quality of Dataset
sapply(new_ratio, function(x) { x%>% is.na() %>% sum() } )
## vnpostusername idTriggerDay
## 0 0
## phoneTriggerDay userTriggerDay
## 0 0
## totalAppDay totalApp7Day
## 0 0
## totalApp30Day idTriggerLast7d
## 0 0
## phoneTriggerLast7d userTriggerLast7d
## 0 0
## idTriggerLast30d phoneTriggerLast30d
## 0 0
## userTriggerLast30d idTriggerLast7day
## 0 0
## phoneTriggerLast7day userTriggerLast7day
## 0 0
## totalAppLast7Day idTriggerLast30day
## 0 0
## phoneTriggerLast30day userTriggerLast30day
## 0 0
## totalAppLast30Day Ratio_idTriggerLast7d
## 0 8049
## Ratio_phoneTriggerLast7d Ratio_userTriggerLast7d
## 8049 8049
## Ratio_idTriggerLast30d Ratio_phoneTriggerLast30d
## 6627 6627
## Ratio_userTriggerLast30d Velo_idTriggerLast7day
## 6627 10433
## Velo_phoneTriggerLast7day Velo_userTriggerLast7day
## 10435 10346
## Velo_totalAppLast7Day Velo_idTriggerLast30day
## 9388 10435
## Velo_phoneTriggerLast30day Velo_userTriggerLast30day
## 10436 10404
## Velo_totalAppLast30Day Ratio_idTriggerLast1d
## 9530 9524
## Ratio_phoneTriggerLast1d Ratio_userTriggerLast1d
## 9524 9524
The NA value almost come from calculation method so it acceptable for dropping observation with NA value:
# new_ratio <- new_ratio %>% na.omit()
- Summarize all statistic’s columns
summary(new_ratio)
## vnpostusername idTriggerDay phoneTriggerDay userTriggerDay
## Length:10436 Min. :0.000000 Min. :0.000000 Min. :0.00000
## Class :character 1st Qu.:0.000000 1st Qu.:0.000000 1st Qu.:0.00000
## Mode :character Median :0.000000 Median :0.000000 Median :0.00000
## Mean :0.001725 Mean :0.001246 Mean :0.02223
## 3rd Qu.:0.000000 3rd Qu.:0.000000 3rd Qu.:0.00000
## Max. :3.000000 Max. :1.000000 Max. :6.00000
##
## totalAppDay totalApp7Day totalApp30Day idTriggerLast7d
## Min. : 0.0000 Min. : 0.00 Min. : 0.000 Min. :0.00000
## 1st Qu.: 0.0000 1st Qu.: 0.00 1st Qu.: 0.000 1st Qu.:0.00000
## Median : 0.0000 Median : 0.00 Median : 0.000 Median :0.00000
## Mean : 0.2002 Mean : 1.24 Mean : 4.686 Mean :0.01111
## 3rd Qu.: 0.0000 3rd Qu.: 0.00 3rd Qu.: 3.000 3rd Qu.:0.00000
## Max. :21.0000 Max. :110.00 Max. :485.000 Max. :8.00000
##
## phoneTriggerLast7d userTriggerLast7d idTriggerLast30d phoneTriggerLast30d
## Min. :0.000000 Min. : 0.0000 Min. : 0.00000 Min. :0.00000
## 1st Qu.:0.000000 1st Qu.: 0.0000 1st Qu.: 0.00000 1st Qu.:0.00000
## Median :0.000000 Median : 0.0000 Median : 0.00000 Median :0.00000
## Mean :0.005558 Mean : 0.1382 Mean : 0.04647 Mean :0.02156
## 3rd Qu.:0.000000 3rd Qu.: 0.0000 3rd Qu.: 0.00000 3rd Qu.:0.00000
## Max. :4.000000 Max. :27.0000 Max. :16.00000 Max. :9.00000
##
## userTriggerLast30d idTriggerLast7day phoneTriggerLast7day userTriggerLast7day
## Min. : 0.0000 Min. :0.00000 Min. :0.000000 Min. : 0.0000
## 1st Qu.: 0.0000 1st Qu.:0.00000 1st Qu.:0.000000 1st Qu.: 0.0000
## Median : 0.0000 Median :0.00000 Median :0.000000 Median : 0.0000
## Mean : 0.4704 Mean :0.01111 Mean :0.005558 Mean : 0.1382
## 3rd Qu.: 0.0000 3rd Qu.:0.00000 3rd Qu.:0.000000 3rd Qu.: 0.0000
## Max. :48.0000 Max. :8.00000 Max. :4.000000 Max. :27.0000
##
## totalAppLast7Day idTriggerLast30day phoneTriggerLast30day userTriggerLast30day
## Min. : 0.00 Min. : 0.00000 Min. :0.00000 Min. : 0.0000
## 1st Qu.: 0.00 1st Qu.: 0.00000 1st Qu.:0.00000 1st Qu.: 0.0000
## Median : 0.00 Median : 0.00000 Median :0.00000 Median : 0.0000
## Mean : 1.24 Mean : 0.04647 Mean :0.02156 Mean : 0.4704
## 3rd Qu.: 0.00 3rd Qu.: 0.00000 3rd Qu.:0.00000 3rd Qu.: 0.0000
## Max. :110.00 Max. :16.00000 Max. :9.00000 Max. :48.0000
##
## totalAppLast30Day Ratio_idTriggerLast7d Ratio_phoneTriggerLast7d
## Min. : 0.000 Min. :0.000 Min. :0.000
## 1st Qu.: 0.000 1st Qu.:0.000 1st Qu.:0.000
## Median : 0.000 Median :0.000 Median :0.000
## Mean : 4.686 Mean :0.008 Mean :0.006
## 3rd Qu.: 3.000 3rd Qu.:0.000 3rd Qu.:0.000
## Max. :485.000 Max. :1.000 Max. :1.000
## NA's :8049 NA's :8049
## Ratio_userTriggerLast7d Ratio_idTriggerLast30d Ratio_phoneTriggerLast30d
## Min. :0.000 Min. :0.000 Min. :0.000
## 1st Qu.:0.000 1st Qu.:0.000 1st Qu.:0.000
## Median :0.000 Median :0.000 Median :0.000
## Mean :0.103 Mean :0.009 Mean :0.006
## 3rd Qu.:0.100 3rd Qu.:0.000 3rd Qu.:0.000
## Max. :1.000 Max. :1.000 Max. :1.000
## NA's :8049 NA's :6627 NA's :6627
## Ratio_userTriggerLast30d Velo_idTriggerLast7day Velo_phoneTriggerLast7day
## Min. :0.000 Min. :0 Min. :0
## 1st Qu.:0.000 1st Qu.:0 1st Qu.:0
## Median :0.000 Median :0 Median :0
## Mean :0.100 Mean :0 Mean :0
## 3rd Qu.:0.133 3rd Qu.:0 3rd Qu.:0
## Max. :1.000 Max. :0 Max. :0
## NA's :6627 NA's :10433 NA's :10435
## Velo_userTriggerLast7day Velo_totalAppLast7Day Velo_idTriggerLast30day
## Min. :0.000 Min. : 0.000 Min. :0
## 1st Qu.:0.000 1st Qu.: 0.000 1st Qu.:0
## Median :0.000 Median : 0.000 Median :0
## Mean :0.511 Mean : 0.815 Mean :0
## 3rd Qu.:1.000 3rd Qu.: 1.000 3rd Qu.:0
## Max. :4.000 Max. :18.000 Max. :0
## NA's :10346 NA's :9388 NA's :10435
## Velo_phoneTriggerLast30day Velo_userTriggerLast30day Velo_totalAppLast30Day
## Mode:logical Min. :0.000 Min. : 0.000
## NA's:10436 1st Qu.:0.000 1st Qu.: 0.000
## Median :0.000 Median : 0.000
## Mean :0.656 Mean : 0.925
## 3rd Qu.:1.000 3rd Qu.: 1.000
## Max. :4.000 Max. :15.000
## NA's :10404 NA's :9530
## Ratio_idTriggerLast1d Ratio_phoneTriggerLast1d Ratio_userTriggerLast1d
## Min. :0.000 Min. :0.000 Min. :0.000
## 1st Qu.:0.000 1st Qu.:0.000 1st Qu.:0.000
## Median :0.000 Median :0.000 Median :0.000
## Mean :0.007 Mean :0.008 Mean :0.098
## 3rd Qu.:0.000 3rd Qu.:0.000 3rd Qu.:0.000
## Max. :0.500 Max. :1.000 Max. :1.000
## NA's :9524 NA's :9524 NA's :9524
- TotalApp 8-12
sum(new_ratio[, 'totalAppDay'], na.rm = TRUE)
## [1] 2089
3 Visualization
3.1 Daily
ggplot(new_ratio, aes(Ratio_idTriggerLast1d))+
geom_histogram(bins = 30)
# Not include 0 value
<- new_ratio%>%
x select(Ratio_idTriggerLast1d) %>%
filter(Ratio_idTriggerLast1d>0)
ggplot(x, aes(Ratio_idTriggerLast1d))+
geom_histogram(bins = 30)
summary(x$Ratio_idTriggerLast1d)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.1000 0.2500 0.5000 0.3818 0.5000 0.5000
# create a treemap of marriage officials
<- x %>%
plotdata count(Ratio_idTriggerLast1d)
# create a treemap with tile labels
ggplot(plotdata,
aes(
fill = Ratio_idTriggerLast1d,
color = "pink",
area = n,
label = Ratio_idTriggerLast1d),
na.rm = TRUE) +
geom_treemap(color = "pink") +
geom_treemap_text(colour = "white",
place = "centre",
size = 20) +
labs(title = "Ratio_idTriggerLast1d") +
theme(legend.position = "none")
ggplot(new_ratio, aes(Ratio_phoneTriggerLast1d))+
geom_histogram(bins = 30)
# Not include 0 value
<- new_ratio%>%
x select(Ratio_phoneTriggerLast1d) %>%
filter(Ratio_phoneTriggerLast1d>0)
ggplot(x, aes(Ratio_phoneTriggerLast1d))+
geom_histogram(bins = 30)
summary(x$Ratio_phoneTriggerLast1d)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.04762 0.33333 0.50000 0.58132 1.00000 1.00000
ggplot(new_ratio, aes(Ratio_userTriggerLast1d))+
geom_histogram(bins = 30)
# Not include 0 value
<- new_ratio%>%
x select(Ratio_userTriggerLast1d) %>%
filter(Ratio_userTriggerLast1d>0)
ggplot(x, aes(Ratio_userTriggerLast1d))+
geom_histogram(bins = 30)
# create a treemap of marriage officials
<- x %>%
plotdata count(Ratio_userTriggerLast1d)
# create a treemap with tile labels
ggplot(plotdata,
aes(
fill = Ratio_userTriggerLast1d,
color = "pink",
area = n,
label = Ratio_userTriggerLast1d),
na.rm = TRUE) +
geom_treemap(color = "pink") +
geom_treemap_text(colour = "white",
place = "centre",
size = 20) +
labs(title = "Ratio_userTriggerLast1d") +
theme(legend.position = "none")
summary(x$Ratio_userTriggerLast1d)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.05556 0.27500 0.50000 0.57587 1.00000 1.00000
3.2 Weekly
ggplot(new_ratio, aes(Ratio_idTriggerLast7d))+
geom_histogram(bins = 30)
# Not include 0 value
<- new_ratio%>%
x select(Ratio_idTriggerLast7d) %>%
filter(Ratio_idTriggerLast7d>0)
ggplot(x, aes(Ratio_idTriggerLast7d))+
geom_histogram(bins = 30)
summary(x$Ratio_idTriggerLast7d)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.01282 0.07900 0.15000 0.21909 0.25000 1.00000
ggplot(new_ratio, aes(Ratio_phoneTriggerLast7d))+
geom_histogram(bins = 30)
# Not include 0 value
<- new_ratio%>%
x select(Ratio_phoneTriggerLast7d) %>%
filter(Ratio_phoneTriggerLast7d>0)
ggplot(x, aes(Ratio_phoneTriggerLast7d))+
geom_histogram(bins = 30)
summary(x$Ratio_phoneTriggerLast7d)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.02564 0.09091 0.16667 0.31024 0.50000 1.00000
ggplot(new_ratio, aes(Ratio_userTriggerLast7d))+
geom_histogram(bins = 30)
# Not include 0 value
<- new_ratio%>%
x select(Ratio_userTriggerLast7d) %>%
filter(Ratio_userTriggerLast7d>0)
ggplot(x, aes(Ratio_userTriggerLast7d))+
geom_histogram(bins = 30)
summary(x$Ratio_userTriggerLast7d)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.01818 0.16667 0.27273 0.36118 0.50000 1.00000
3.3 Monthly
ggplot(new_ratio, aes(Ratio_idTriggerLast30d))+
geom_histogram(bins = 30)
# Not include 0 value
<- new_ratio%>%
x select(Ratio_idTriggerLast30d) %>%
filter(Ratio_idTriggerLast30d>0)
<- quantile(x$Ratio_idTriggerLast30d, probs=0.05)
threshold ggplot(x, aes(Ratio_idTriggerLast30d))+
geom_histogram( bins = 30)+ geom_vline(xintercept=threshold)
ggplot(x, aes(Ratio_idTriggerLast30d))+
geom_density()+ geom_vline(xintercept=threshold, color="red")
summary(x$Ratio_idTriggerLast30d)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.006173 0.031250 0.064173 0.119690 0.142857 1.000000
ggplot(new_ratio, aes(Ratio_phoneTriggerLast30d))+
geom_histogram(bins = 30)
# Not include 0 value
<- new_ratio%>%
x select(Ratio_phoneTriggerLast30d) %>%
filter(Ratio_phoneTriggerLast30d>0)
<- quantile(x$Ratio_phoneTriggerLast30d, probs=0.05)
threshold
ggplot(x, aes(x=Ratio_phoneTriggerLast30d)) + geom_density() + geom_vline(xintercept=threshold)
ggplot(x, aes(Ratio_phoneTriggerLast30d))+
geom_histogram(bins = 30)+ geom_vline(xintercept=threshold, color = "red")
summary(x$Ratio_phoneTriggerLast30d)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.00361 0.03391 0.07692 0.14034 0.16905 1.00000
ggplot(new_ratio, aes(Ratio_userTriggerLast30d))+
geom_histogram(bins = 30)
# Not include 0 value
<- new_ratio%>%
x select(Ratio_userTriggerLast30d) %>%
filter(Ratio_userTriggerLast30d>0)
<- quantile(x$Ratio_userTriggerLast30d, probs=0.05)
threshold ggplot(x, aes(Ratio_userTriggerLast30d))+
geom_histogram( bins = 30)+ geom_vline(xintercept=threshold)
ggplot(x, aes(Ratio_userTriggerLast30d))+
geom_density()+ geom_vline(xintercept=threshold, color="red")
summary(x$Ratio_userTriggerLast30d)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.008197 0.090909 0.166667 0.247956 0.333333 1.000000
# create a treemap of marriage officials
<- x %>%
plotdata count(Ratio_userTriggerLast30d)
# create a treemap with tile labels
ggplot(plotdata,
aes(
fill = Ratio_userTriggerLast30d,
color = "pink",
area = n,
label = Ratio_userTriggerLast30d)) +
geom_treemap(color = "pink") +
geom_treemap_text(colour = "white",
place = "centre",
size = 25) +
labs(title = "Ratio_userTriggerLast30d") +
theme(legend.position = "none")
4 Correlate Observation
<- new_ratio%>%
x select(idTriggerDay,idTriggerLast7d,idTriggerLast30day,totalAppDay,Velo_idTriggerLast7day)
<- select_if(x, is.numeric)
df <- cor(df, use="everything")
r round(r,2)
## idTriggerDay idTriggerLast7d idTriggerLast30day
## idTriggerDay 1.00 0.00 0.02
## idTriggerLast7d 0.00 1.00 0.58
## idTriggerLast30day 0.02 0.58 1.00
## totalAppDay 0.14 0.13 0.18
## Velo_idTriggerLast7day NA NA NA
## totalAppDay Velo_idTriggerLast7day
## idTriggerDay 0.14 NA
## idTriggerLast7d 0.13 NA
## idTriggerLast30day 0.18 NA
## totalAppDay 1.00 NA
## Velo_idTriggerLast7day NA 1
ggcorrplot(r)
<- new_ratio%>%
x select(phoneTriggerDay,phoneTriggerLast7d,phoneTriggerLast30day,totalAppDay,Velo_phoneTriggerLast7day)
<- select_if(x, is.numeric)
df <- cor(df, use="everything")
r round(r,2)
## phoneTriggerDay phoneTriggerLast7d
## phoneTriggerDay 1.00 0.00
## phoneTriggerLast7d 0.00 1.00
## phoneTriggerLast30day 0.02 0.45
## totalAppDay 0.14 0.06
## Velo_phoneTriggerLast7day NA NA
## phoneTriggerLast30day totalAppDay
## phoneTriggerDay 0.02 0.14
## phoneTriggerLast7d 0.45 0.06
## phoneTriggerLast30day 1.00 0.08
## totalAppDay 0.08 1.00
## Velo_phoneTriggerLast7day NA NA
## Velo_phoneTriggerLast7day
## phoneTriggerDay NA
## phoneTriggerLast7d NA
## phoneTriggerLast30day NA
## totalAppDay NA
## Velo_phoneTriggerLast7day 1
ggcorrplot(r)
<- new_ratio%>%
x select(userTriggerDay,userTriggerLast7d,userTriggerLast30day,totalAppDay,Velo_userTriggerLast7day)
<- select_if(x, is.numeric)
df <- cor(df, use="everything")
r round(r,2)
## userTriggerDay userTriggerLast7d userTriggerLast30day
## userTriggerDay 1.00 0.27 0.27
## userTriggerLast7d 0.27 1.00 0.69
## userTriggerLast30day 0.27 0.69 1.00
## totalAppDay 0.54 0.31 0.28
## Velo_userTriggerLast7day NA NA NA
## totalAppDay Velo_userTriggerLast7day
## userTriggerDay 0.54 NA
## userTriggerLast7d 0.31 NA
## userTriggerLast30day 0.28 NA
## totalAppDay 1.00 NA
## Velo_userTriggerLast7day NA 1
ggcorrplot(r)