You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1140 lines
34 KiB

4 years ago
---
title: "Report"
author: "Data Science Team, LaNubia"
date: '`r format(Sys.time(), "%d %B, %Y")`'
4 years ago
output:
html_document:
theme: lumen
highlight: tango
self_contained: true
toc: true
toc_depth: 4
toc_float: true
css: style.css
includes:
in_header: plausible.html
4 years ago
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE, error=TRUE, message=FALSE, warning=FALSE)
library(readxl)
library(DT)
library(tidyr)
library(dplyr)
library(highcharter)
library(purrr)
library(stringr)
4 years ago
rxl<- function(path,...){
tryCatch(read_excel(path,...), error= function(c){
c$message<-"No Data"
print("No Data")
stop(c)
})
}
ltodf<- function(path,...){
tryCatch(rbind.data.frame(path,...), error= function(c){
c$message<-"No Data"
print("No Data")
stop(c)
})
}
```
**Non commercial license of Highchart library used**
4 years ago
4 years ago
## Status Report
### Input Available
```{r echo=FALSE, message=FALSE, warning=FALSE}
contactinputpath<-list.files("./contacts/raw-data", pattern="*.xls", full.names = T)
4 years ago
accountinputpath<-list.files("./accounts/raw-data", pattern="*.xls", full.names = T)
projectinputpath<-list.files("./projects/raw-data", pattern="*.xls", full.names = T)
supportinputpath<-list.files("./support/raw-data", pattern="*.xls", full.names = T)
conta<-lapply(contactinputpath, read_excel)
names(conta)<-gsub("./contacts/raw-data/","",contactinputpath)
c<-lapply(conta, nrow)
Input_data<-"Contact"
#Country<-gsub(".xlsx","",names(conta))
Observations<-c
temp<-data.frame(Input_data,Observations) |>
pivot_longer(cols = (-1), names_to = "Country", values_to = "Observations") |>
mutate(Country=gsub(".xls","",Country))
4 years ago
input.summary<-temp
acco<-lapply(accountinputpath, read_excel)
names(acco)<-gsub("./accounts/raw-data/","",accountinputpath)
a<-lapply(acco, nrow)
Input_data<-"Accounts"
#Country<-gsub(".xlsx","",names(conta))
Observations<-a
temp<-data.frame(Input_data,Observations) |>
pivot_longer(cols = (-1), names_to = "Country", values_to = "Observations") |>
mutate(Country=gsub(".xls","",Country))
input.summary<-rbind(input.summary,temp)
proja<-lapply(projectinputpath, read_excel)
names(proja)<-gsub("./projects/raw-data/","",projectinputpath)
p<-lapply(proja, nrow)
Input_data<-"Projects"
#Country<-gsub(".xlsx","",names(conta))
Observations<-p
temp<-data.frame(Input_data,Observations) |>
pivot_longer(cols = (-1), names_to = "Country", values_to = "Observations") |>
mutate(Country=gsub(".xls","",Country))
input.summary<-rbind(input.summary,temp)
suppo<-lapply(supportinputpath, read_excel)
names(suppo)<-gsub("./support/raw-data/","",supportinputpath)
s<-lapply(suppo, nrow)
Input_data<-"Support"
#Country<-gsub(".xlsx","",names(conta))
Observations<-s
temp<-data.frame(Input_data,Observations) |>
pivot_longer(cols = (-1), names_to = "Country", values_to = "Observations") |>
mutate(Country=gsub(".xls","",Country))
input.summary<-rbind(input.summary,temp)
# datatable(input.summary, extensions = "Buttons",
# options = list(paging = TRUE,
# scrollX=TRUE,
# searching = TRUE,
# ordering = TRUE,
# dom = 'Bfrtip',
# buttons = c('copy', 'csv', 'excel', 'pdf'),
# pageLength=10,
# lengthMenu=c(3,5,10) ))
input.summary<-input.summary |> arrange(desc(Observations))
input.summary.summ<-input.summary |>
group_by(Input_data) |>
summarise(Observations=sum(Observations)) |>
arrange(desc(Observations))
input.summary.drilldown<-input.summary |>
group_nest(Input_data) |>
mutate(id=Input_data,
type="column",
data=map(data, mutate, name=Country, y=Observations),
data = map(data, list_parse))
tt <- tooltip_table(c("No. of Observations(Input)"), c("{point.Observations}"))
hchart(input.summary.summ,
"column",
hcaes(x=Input_data, y=Observations, name=Input_data, drilldown=Input_data),
name="Segment view",
colorByPoint = TRUE) |>
hc_drilldown(
allowPointDrilldown = TRUE,
series = list_parse(input.summary.drilldown)
) |>
hc_tooltip(
pointFormat = tt, # "{point.name} {point.pop}"
useHTML = TRUE,
valueDecimals = 0
) |>
hc_yAxis(
title = list(text = "Number of observations")
) |>
hc_xAxis(
title = "Segment"
) |>
hc_credits(
enabled = TRUE,
text = "LaNubia Data Science",
href = "https://www.lanubia.com/"
) |>
hc_exporting(
enabled = TRUE, # always enabled
filename = "Input Summary"
) |>
hc_title(
text = "Observations by segment"
) |>
hc_subtitle(
text = "Click on the bar to view details by country"
)
4 years ago
```
Simplified view
```{r echo=FALSE}
input.summary |>
pivot_wider(names_from = Country, values_from = Observations) |> datatable(extensions = "Buttons",
options = list(paging = TRUE,
scrollX=TRUE,
searching = TRUE,
ordering = TRUE,
dom = 'Bfrtip',
buttons = c('copy', 'csv', 'excel', 'pdf'),
pageLength=10,
4 years ago
lengthMenu=c(3,5,10) ))
```
### Contacts
#### Template
SAP templates available:
```{r echo=FALSE}
datatable(data.frame(Templates=unique(rxl("./contacts/template.xlsx", sheet = "Field_Definitions")[,1])), extensions = "Buttons",
options = list(paging = TRUE,
scrollX=TRUE,
searching = TRUE,
ordering = TRUE,
dom = 'Bfrtip',
buttons = c('copy', 'csv', 'excel', 'pdf'),
pageLength=10,
4 years ago
lengthMenu=c(3,5,10) ))
```
#### Summary of Errors
```{r echo=FALSE, message=FALSE, warning=FALSE}
sumerrfilepath<-list.files("./contacts/summary", pattern="*sumerror.csv", full.names = T)
errfilepath<-list.files("./contacts/summary", pattern="*_error.csv", full.names = T)
sumerrfiles<-lapply(sumerrfilepath, read.csv)
# datatable(unique(do.call(ltodf, sumerrfiles)), extensions = "Buttons",
# options = list(paging = TRUE,
# scrollX=TRUE,
# searching = TRUE,
# ordering = TRUE,
# dom = 'Bfrtip',
# buttons = c('copy', 'csv', 'excel', 'pdf'),
# pageLength=10,
# lengthMenu=c(3,5,10) ))
tdf<-unique(do.call(ltodf, sumerrfiles)) |> arrange(desc(Expected))
tdf<-tdf |> mutate(Pending=Expected-Actual) |> select(-Name) |> unique()
tdf |>
hchart("bullet", hcaes(x=Country, y=Actual, target=Expected), color="black", name="Observations (Output)") |>
hc_chart(inverted = TRUE) |>
hc_add_series(tdf, "pie", hcaes(x=Country, y=Pending), name="Pending (Major Issues)") |>
hc_plotOptions(
pie = list(
center = c('70%', '70%'),
size = 200,
dataLabels = list(enabled = FALSE),
showInLegend = T
)
) |>
hc_title(
text="Expect vs Actual"
) |>
hc_subtitle(
text="Pie shows number of major issues identified"
) |>
hc_credits(
enabled = TRUE,
text = "LaNubia Data Science",
href = "https://www.lanubia.com/"
) |>
hc_exporting(
enabled = TRUE, # always enabled
filename = "ErrorSum_Contact"
)
4 years ago
```
#### Error by template
```{r echo=FALSE, message=FALSE, warning=FALSE}
errfiles<-lapply(errfilepath, read.csv)
# datatable(unique(do.call(ltodf, errfiles)), extensions = "Buttons",
# options = list(paging = TRUE,
# scrollX=TRUE,
# searching = TRUE,
# ordering = TRUE,
# dom = 'Bfrtip',
# buttons = c('copy', 'csv', 'excel', 'pdf'),
# pageLength=10,
# lengthMenu=c(3,5,10) ))
tdf<-unique(do.call(ltodf, errfiles))
tdf<-tdf |>
mutate(err.deep=word(err.type,-1)) |>
mutate(err=word(err.type,1,-2)) |> select(-err.type) |>
select(c(Name, Country, err, err.deep, err.count)) |>
arrange(desc(err.count))
tdf.country<- tdf |>
group_by(Country) |>
summarize(err.count = sum(err.count)
) |>
arrange(err.count)
Lvl1dfStatus <- tibble(name = tdf.country$Country, y = tdf.country$err.count, drilldown = tolower(name))
Level_2_Drilldowns <- lapply(unique(tdf$Country), function(x_level) {
tdf.err <- tdf[tdf$Country == x_level,]
tdf.err <- tdf.err |>
group_by(err) |>
summarize(err.count = sum(err.count)
) |> arrange(err.count)
Lvl2dfStatus <- tibble(name = tdf.err$err, y = tdf.err$err.count, drilldown = tolower(paste(x_level, name, sep = "_")))
list(id = tolower(x_level), type = "column", data = list_parse(Lvl2dfStatus), name="High Level Error")
})
Level_3_Drilldowns <- lapply(unique(tdf.country$Country), function(x_level) {
tdf.err <- tdf[tdf$Country == x_level,]
lapply(unique(tdf.err$err), function(y_level) {
tdf.err.deep <- tdf.err[tdf.err$err == y_level,]
tdf.err.deep <- tdf.err.deep |>
group_by(err.deep) |>
summarize(err.count = sum(err.count)
) |> arrange(err.count)
Lvl3dfStatus <- tibble(name = tdf.err.deep$err.deep,y = tdf.err.deep$err.count)
list(id = tolower(paste(x_level, y_level, sep = "_")), type = "column", data = list_parse2(Lvl3dfStatus), name="Deep Dive")
})
}) |> unlist(recursive = FALSE)
highchart() |>
hc_xAxis(type = "category") |>
hc_add_series(Lvl1dfStatus, "column", hcaes(x = name, y = y),name = "Country View", showInLegend = F) |>
hc_plotOptions(column = list(stacking = "normal"), lang=list(drillUpText ="Back")) |>
hc_drilldown(
allowPointDrilldown = TRUE,
series = c(Level_2_Drilldowns, Level_3_Drilldowns)
) |>
hc_yAxis(
title = list(text = "Number of errors")
) |>
hc_title(text="Error Count") |>
hc_subtitle(text="Click on bar for deep dive") |>
hc_credits(
enabled = TRUE,
text = "LaNubia Data Science",
href = "https://www.lanubia.com/"
) |>
hc_tooltip() |>
hc_exporting(
enabled = TRUE, # always enabled
filename = "Error_Contact"
)
```
#### Errors in details {.tabset .tabset-pills}
##### Mandatory
###### Contact
```{r}
manderrfilepath<-list.files("./contacts/errors/mandatory", pattern="*.csv", full.names = T)
manderrfiles<-lapply(manderrfilepath, read.csv)
manderrdf<-do.call(ltodf, manderrfiles)
datatable(manderrdf, extensions = "Buttons",
options = list(paging = TRUE,
scrollX=TRUE,
searching = TRUE,
ordering = TRUE,
dom = 'Bfrtip',
buttons = c('copy', 'csv', 'excel', 'pdf'),
pageLength=10,
lengthMenu=c(3,5,10),
filter=TRUE))
4 years ago
```
##### Codelist
```{r}
codeerrfilepath<-list.files("./contacts/errors/codelist", pattern="*.csv", full.names = T)
codeerrfiles<-lapply(codeerrfilepath, read.csv)
codeerrdf<-do.call(ltodf, codeerrfiles)
codeerrdf |> select(c(3,4)) |>
rename(ColValues=def.rows.val, ColNames=def.colname) |>
count(ColValues,ColNames) |> rename(Occurences=n) |>
datatable(extensions = "Buttons",
options = list(paging = TRUE,
scrollX=TRUE,
searching = TRUE,
ordering = TRUE,
dom = 'Bfrtip',
buttons = c('copy', 'csv', 'excel', 'pdf'),
pageLength=10,
lengthMenu=c(3,5,10),
filter=TRUE))
```
##### Length
```{r}
lenerrfilepath<-list.files("./contacts/errors/length", pattern="*.csv", full.names = T)
lenerrfiles<-lapply(lenerrfilepath, read.csv)
lenerrdf<-do.call(ltodf, lenerrfiles)
datatable(lenerrdf,extensions = "Buttons",
options = list(paging = TRUE,
scrollX=TRUE,
searching = TRUE,
ordering = TRUE,
dom = 'Bfrtip',
buttons = c('copy', 'csv', 'excel', 'pdf'),
pageLength=10,
lengthMenu=c(3,5,10),
filter=TRUE))
```
4 years ago
### Accounts
4 years ago
#### Template
SAP templates available:
```{r echo=FALSE}
datatable(data.frame(Templates=unique(rxl("./accounts/template.xlsx", sheet = "Field_Definitions")[,1])), extensions = "Buttons",
options = list(paging = TRUE,
scrollX=TRUE,
searching = TRUE,
ordering = TRUE,
dom = 'Bfrtip',
buttons = c('copy', 'csv', 'excel', 'pdf'),
pageLength=10,
4 years ago
lengthMenu=c(3,5,10) ))
```
#### Summary of Errors
```{r echo=FALSE, message=FALSE, warning=FALSE}
sumerrfilepath<-list.files("./accounts/summary", pattern="*sumerror.csv", full.names = T)
errfilepath<-list.files("./accounts/summary", pattern="*_error.csv", full.names = T)
sumerrfiles<-lapply(sumerrfilepath, read.csv)
# datatable(unique(do.call(ltodf, sumerrfiles)), extensions = "Buttons",
# options = list(paging = TRUE,
# scrollX=TRUE,
# searching = TRUE,
# ordering = TRUE,
# dom = 'Bfrtip',
# buttons = c('copy', 'csv', 'excel', 'pdf'),
# pageLength=10,
# lengthMenu=c(3,5,10) ))
tdf<-unique(do.call(ltodf, sumerrfiles)) |> arrange(desc(Expected))
tdf<-tdf |> mutate(Pending=Expected-Actual) |> select(-Name) |> unique()
tdf |>
hchart("bullet", hcaes(x=Country, y=Actual, target=Expected), color="black", name="Observations (Output)") |>
hc_chart(inverted = TRUE) |>
hc_add_series(tdf, "pie", hcaes(x=Country, y=Pending), name="Pending (Major Issues)") |>
hc_plotOptions(
pie = list(
center = c('70%', '70%'),
size = 200,
dataLabels = list(enabled = FALSE),
showInLegend = T
)
) |>
hc_title(
text="Expect vs Actual"
) |>
hc_subtitle(
text="Pie shows number of major issues identified"
) |>
hc_credits(
enabled = TRUE,
text = "LaNubia Data Science",
href = "https://www.lanubia.com/"
) |>
hc_exporting(
enabled = TRUE, # always enabled
filename = "ErrorSumm_Account"
)
4 years ago
```
#### Error by template
```{r echo=FALSE, message=FALSE, warning=FALSE}
errfiles<-lapply(errfilepath, read.csv)
# datatable(unique(do.call(ltodf, errfiles)), extensions = "Buttons",
# options = list(paging = TRUE,
# scrollX=TRUE,
# searching = TRUE,
# ordering = TRUE,
# dom = 'Bfrtip',
# buttons = c('copy', 'csv', 'excel', 'pdf'),
# pageLength=10,
# lengthMenu=c(3,5,10) ))
tdf<-unique(do.call(ltodf, errfiles))
tdf<-tdf |>
mutate(err.deep=word(err.type,-1)) |>
mutate(err=word(err.type,1,-2)) |> select(-err.type) |>
select(c(Name, Country, err, err.deep, err.count)) |>
arrange(desc(err.count))
tdf.country<- tdf |>
group_by(Country) |>
summarize(err.count = sum(err.count)
) |>
arrange(err.count)
Lvl1dfStatus <- tibble(name = tdf.country$Country, y = tdf.country$err.count, drilldown = tolower(name))
Level_2_Drilldowns <- lapply(unique(tdf$Country), function(x_level) {
tdf.err <- tdf[tdf$Country == x_level,]
tdf.err <- tdf.err |>
group_by(err) |>
summarize(err.count = sum(err.count)
) |> arrange(err.count)
Lvl2dfStatus <- tibble(name = tdf.err$err, y = tdf.err$err.count, drilldown = tolower(paste(x_level, name, sep = "_")))
list(id = tolower(x_level), type = "column", data = list_parse(Lvl2dfStatus), name="High Level Error")
})
Level_3_Drilldowns <- lapply(unique(tdf.country$Country), function(x_level) {
tdf.err <- tdf[tdf$Country == x_level,]
lapply(unique(tdf.err$err), function(y_level) {
tdf.err.deep <- tdf.err[tdf.err$err == y_level,]
tdf.err.deep <- tdf.err.deep |>
group_by(err.deep) |>
summarize(err.count = sum(err.count)
) |> arrange(err.count)
Lvl3dfStatus <- tibble(name = tdf.err.deep$err.deep,y = tdf.err.deep$err.count)
list(id = tolower(paste(x_level, y_level, sep = "_")), type = "column", data = list_parse2(Lvl3dfStatus), name="Deep Dive")
})
}) |> unlist(recursive = FALSE)
highchart() |>
hc_xAxis(type = "category") |>
hc_add_series(Lvl1dfStatus, "column", hcaes(x = name, y = y),name = "Country View", showInLegend = F) |>
hc_plotOptions(column = list(stacking = "normal"), lang=list(drillUpText ="Back")) |>
hc_drilldown(
allowPointDrilldown = TRUE,
series = c(Level_2_Drilldowns, Level_3_Drilldowns)
) |>
hc_yAxis(
title = list(text = "Number of errors")
) |>
hc_title(text="Error Count") |>
hc_subtitle(text="Click on bar for deep dive") |>
hc_credits(
enabled = TRUE,
text = "LaNubia Data Science",
href = "https://www.lanubia.com/"
) |>
hc_tooltip() |>
hc_exporting(
enabled = TRUE, # always enabled
filename = "Error_Account"
)
4 years ago
```
#### Errors in details {.tabset .tabset-pills}
##### Mandatory {.tabset .tabset-pills}
###### Account
```{r}
manderrfilepath<-list.files("./accounts/errors/mandatory", pattern="*.csv", full.names = T)
manderrfiles<-lapply(manderrfilepath, read.csv)
manderrdf<-do.call(ltodf, manderrfiles[c(1,3,5,7,9)])
datatable(manderrdf, extensions = "Buttons",
options = list(paging = TRUE,
scrollX=TRUE,
searching = TRUE,
ordering = TRUE,
dom = 'Bfrtip',
buttons = c('copy', 'csv', 'excel', 'pdf'),
pageLength=10,
lengthMenu=c(3,5,10),
filter=TRUE))
```
###### Account Team
```{r}
manderrdf<-do.call(ltodf, manderrfiles[c(2,4,6,8,10)])
datatable(manderrdf, extensions = "Buttons",
options = list(paging = TRUE,
scrollX=TRUE,
searching = TRUE,
ordering = TRUE,
dom = 'Bfrtip',
buttons = c('copy', 'csv', 'excel', 'pdf'),
pageLength=10,
lengthMenu=c(3,5,10),
filter=TRUE))
```
##### Codelist
```{r}
codeerrfilepath<-list.files("./accounts/errors/codelist", pattern="*.csv", full.names = T)
codeerrfiles<-lapply(codeerrfilepath, read.csv)
codeerrdf<-do.call(ltodf, codeerrfiles)
codeerrdf |> select(c(3,4)) |>
rename(ColValues=def.rows.val, ColNames=def.colname) |>
count(ColValues,ColNames) |> rename(Occurences=n) |>
datatable(manderrdf, extensions = "Buttons",
options = list(paging = TRUE,
scrollX=TRUE,
searching = TRUE,
ordering = TRUE,
dom = 'Bfrtip',
buttons = c('copy', 'csv', 'excel', 'pdf'),
pageLength=10,
lengthMenu=c(3,5,10),
filter=TRUE))
```
##### Length
```{r}
lenerrfilepath<-list.files("./accounts/errors/length", pattern="*.csv", full.names = T)
lenerrfiles<-lapply(lenerrfilepath, read.csv)
lenerrdf<-do.call(ltodf, lenerrfiles)
datatable(lenerrdf,extensions = "Buttons",
options = list(paging = TRUE,
scrollX=TRUE,
searching = TRUE,
ordering = TRUE,
dom = 'Bfrtip',
buttons = c('copy', 'csv', 'excel', 'pdf'),
pageLength=10,
lengthMenu=c(3,5,10),
filter=TRUE))
```
4 years ago
### Projects
4 years ago
#### Template
SAP templates available:
```{r echo=FALSE}
datatable(data.frame(Templates=unique(rxl("./projects/template.xlsx", sheet = "Field_Definitions")[,1])), extensions = "Buttons",
options = list(paging = TRUE,
scrollX=TRUE,
searching = TRUE,
ordering = TRUE,
dom = 'Bfrtip',
buttons = c('copy', 'csv', 'excel', 'pdf'),
pageLength=10,
4 years ago
lengthMenu=c(3,5,10) ))
```
#### Summary of Errors
```{r echo=FALSE, message=FALSE, warning=FALSE}
sumerrfilepath<-list.files("./projects/summary", pattern="*sumerror.csv", full.names = T)
errfilepath<-list.files("./projects/summary", pattern="*_error.csv", full.names = T)
sumerrfiles<-lapply(sumerrfilepath, read.csv)
# datatable(unique(do.call(ltodf, sumerrfiles)), extensions = "Buttons",
# options = list(paging = TRUE,
# scrollX=TRUE,
# searching = TRUE,
# ordering = TRUE,
# dom = 'Bfrtip',
# buttons = c('copy', 'csv', 'excel', 'pdf'),
# pageLength=10,
# lengthMenu=c(3,5,10) ))
tdf<-unique(do.call(ltodf, sumerrfiles)) |> arrange(desc(Expected))
tdf<-tdf |> mutate(Pending=Expected-Actual) |> select(-Name) |> unique()
tdf |>
hchart("bullet", hcaes(x=Country, y=Actual, target=Expected), color="black", name="Observations (Output)") |>
hc_chart(inverted = TRUE) |>
hc_add_series(tdf, "pie", hcaes(x=Country, y=Pending), name="Pending (Major Issues)") |>
hc_plotOptions(
pie = list(
center = c('70%', '70%'),
size = 200,
dataLabels = list(enabled = FALSE),
showInLegend = T
)
) |>
hc_title(
text="Expect vs Actual"
) |>
hc_subtitle(
text="Pie shows number of major issues identified"
) |>
hc_credits(
enabled = TRUE,
text = "LaNubia Data Science",
href = "https://www.lanubia.com/"
) |>
hc_exporting(
enabled = TRUE, # always enabled
filename = "ErrorSumm_Project"
)
4 years ago
```
#### Error by template
```{r echo=FALSE, message=FALSE, warning=FALSE}
errfiles<-lapply(errfilepath, read.csv)
# datatable(unique(do.call(ltodf, errfiles)), extensions = "Buttons",
# options = list(paging = TRUE,
# scrollX=TRUE,
# searching = TRUE,
# ordering = TRUE,
# dom = 'Bfrtip',
# buttons = c('copy', 'csv', 'excel', 'pdf'),
# pageLength=10,
# lengthMenu=c(3,5,10) ))
tdf<-unique(do.call(ltodf, errfiles))
tdf<-tdf |>
mutate(err.deep=word(err.type,-1)) |>
mutate(err=word(err.type,1,-2)) |> select(-err.type) |>
select(c(Name, Country, err, err.deep, err.count)) |>
arrange(desc(err.count))
tdf.country<- tdf |>
group_by(Country) |>
summarize(err.count = sum(err.count)
) |>
arrange(err.count)
Lvl1dfStatus <- tibble(name = tdf.country$Country, y = tdf.country$err.count, drilldown = tolower(name))
Level_2_Drilldowns <- lapply(unique(tdf$Country), function(x_level) {
tdf.err <- tdf[tdf$Country == x_level,]
tdf.err <- tdf.err |>
group_by(err) |>
summarize(err.count = sum(err.count)
) |> arrange(err.count)
Lvl2dfStatus <- tibble(name = tdf.err$err, y = tdf.err$err.count, drilldown = tolower(paste(x_level, name, sep = "_")))
list(id = tolower(x_level), type = "column", data = list_parse(Lvl2dfStatus), name="High Level Error")
})
Level_3_Drilldowns <- lapply(unique(tdf.country$Country), function(x_level) {
tdf.err <- tdf[tdf$Country == x_level,]
lapply(unique(tdf.err$err), function(y_level) {
tdf.err.deep <- tdf.err[tdf.err$err == y_level,]
tdf.err.deep <- tdf.err.deep |>
group_by(err.deep) |>
summarize(err.count = sum(err.count)
) |> arrange(err.count)
Lvl3dfStatus <- tibble(name = tdf.err.deep$err.deep,y = tdf.err.deep$err.count)
list(id = tolower(paste(x_level, y_level, sep = "_")), type = "column", data = list_parse2(Lvl3dfStatus), name="Deep Dive")
})
}) |> unlist(recursive = FALSE)
highchart() |>
hc_xAxis(type = "category") |>
hc_add_series(Lvl1dfStatus, "column", hcaes(x = name, y = y),name = "Country View", showInLegend = F) |>
hc_plotOptions(column = list(stacking = "normal"), lang=list(drillUpText ="Back")) |>
hc_drilldown(
allowPointDrilldown = TRUE,
series = c(Level_2_Drilldowns, Level_3_Drilldowns)
) |>
hc_yAxis(
title = list(text = "Number of errors")
) |>
hc_title(text="Error Count") |>
hc_subtitle(text="Click on bar for deep dive") |>
hc_tooltip() |>
hc_credits(
enabled = TRUE,
text = "LaNubia Data Science",
href = "https://www.lanubia.com/"
) |>
hc_exporting(
enabled = TRUE, # always enabled
filename = "Error_Project"
)
4 years ago
```
#### Errors in details {.tabset .tabset-pills}
##### Mandatory {.tabset .tabset-pills}
###### Opportunity
```{r}
manderrfilepath<-list.files("./projects/errors/mandatory", pattern="*.csv", full.names = T)
manderrfiles<-lapply(manderrfilepath, read.csv)
manderrdf<-do.call(ltodf, manderrfiles[c(1,3,6)])
datatable(manderrdf, extensions = "Buttons",
options = list(paging = TRUE,
scrollX=TRUE,
searching = TRUE,
ordering = TRUE,
dom = 'Bfrtip',
buttons = c('copy', 'csv', 'excel', 'pdf'),
pageLength=10,
lengthMenu=c(3,5,10),
filter=TRUE))
```
###### Opportunity Sales Team Party In
```{r}
manderrfilepath<-list.files("./projects/errors/mandatory", pattern="*.csv", full.names = T)
manderrfiles<-lapply(manderrfilepath, read.csv)
manderrdf<-do.call(ltodf, manderrfiles[c(2,5,8)])
datatable(manderrdf, extensions = "Buttons",
options = list(paging = TRUE,
scrollX=TRUE,
searching = TRUE,
ordering = TRUE,
dom = 'Bfrtip',
buttons = c('copy', 'csv', 'excel', 'pdf'),
pageLength=10,
lengthMenu=c(3,5,10),
filter=TRUE))
```
###### Opportunity Party Information
```{r}
manderrfilepath<-list.files("./projects/errors/mandatory", pattern="*.csv", full.names = T)
manderrfiles<-lapply(manderrfilepath, read.csv)
manderrdf<-do.call(ltodf, manderrfiles[c(4,7)])
datatable(manderrdf, extensions = "Buttons",
options = list(paging = TRUE,
scrollX=TRUE,
searching = TRUE,
ordering = TRUE,
dom = 'Bfrtip',
buttons = c('copy', 'csv', 'excel', 'pdf'),
pageLength=10,
lengthMenu=c(3,5,10),
filter=TRUE))
```
##### Codelist
```{r}
codeerrfilepath<-list.files("./projects/errors/codelist", pattern="*.csv", full.names = T)
codeerrfiles<-lapply(codeerrfilepath, read.csv)
#codeerrdf<-do.call(ltodf, codeerrfiles)
data.table::rbindlist(codeerrfiles) |> select(c(3,4)) |>
rename(ColValues=def.rows.val, ColNames=def.colname) |>
count(ColValues,ColNames) |> rename(Occurences=n) |>
datatable(manderrdf, extensions = "Buttons",
options = list(paging = TRUE,
scrollX=TRUE,
searching = TRUE,
ordering = TRUE,
dom = 'Bfrtip',
buttons = c('copy', 'csv', 'excel', 'pdf'),
pageLength=10,
lengthMenu=c(3,5,10),
filter=TRUE))
```
##### Length
```{r}
lenerrfilepath<-list.files("./contacts/errors/length", pattern="*.csv", full.names = T)
lenerrfiles<-lapply(lenerrfilepath, read.csv)
lenerrdf<-do.call(ltodf, lenerrfiles)
datatable(lenerrdf,extensions = "Buttons",
options = list(paging = TRUE,
scrollX=TRUE,
searching = TRUE,
ordering = TRUE,
dom = 'Bfrtip',
buttons = c('copy', 'csv', 'excel', 'pdf'),
pageLength=10,
lengthMenu=c(3,5,10),
filter=TRUE))
```
4 years ago
### Support
#### Template
SAP templates available:
```{r echo=FALSE}
datatable(data.frame(Templates=unique(rxl("./support/template.xlsx", sheet = "Field_Definitions")[,1])), extensions = "Buttons",
options = list(paging = TRUE,
scrollX=TRUE,
searching = TRUE,
ordering = TRUE,
dom = 'Bfrtip',
buttons = c('copy', 'csv', 'excel', 'pdf'),
pageLength=10,
4 years ago
lengthMenu=c(3,5,10) ))
```
#### Summary of Errors
```{r echo=FALSE, message=FALSE, warning=FALSE}
sumerrfilepath<-list.files("./support/summary", pattern="*sumerror.csv", full.names = T)
errfilepath<-list.files("./support/summary", pattern="*_error.csv", full.names = T)
sumerrfiles<-lapply(sumerrfilepath, read.csv)
# datatable(unique(do.call(ltodf, sumerrfiles)), extensions = "Buttons",
# options = list(paging = TRUE,
# scrollX=TRUE,
# searching = TRUE,
# ordering = TRUE,
# dom = 'Bfrtip',
# buttons = c('copy', 'csv', 'excel', 'pdf'),
# pageLength=10,
# lengthMenu=c(3,5,10) ))
tdf<-unique(do.call(ltodf, sumerrfiles)) |> arrange(desc(Expected))
tdf<-tdf |> mutate(Pending=Expected-Actual) |> select(-Name) |> unique()
tdf |>
hchart("bullet", hcaes(x=Country, y=Actual, target=Expected), color="black", name="Observations (Output)") |>
hc_chart(inverted = TRUE) |>
hc_add_series(tdf, "pie", hcaes(x=Country, y=Pending), name="Pending (Major Issues)") |>
hc_plotOptions(
pie = list(
center = c('70%', '70%'),
size = 200,
dataLabels = list(enabled = FALSE),
showInLegend = T
)
) |>
hc_title(
text="Expect vs Actual"
) |>
hc_subtitle(
text="Pie shows number of major issues identified"
) |>
hc_credits(
enabled = TRUE,
text = "LaNubia Data Science",
href = "https://www.lanubia.com/"
) |>
hc_exporting(
enabled = TRUE, # always enabled
filename = "ErrorSumm_Support"
)
4 years ago
```
#### Error by template
```{r echo=FALSE, message=FALSE, warning=FALSE}
errfiles<-lapply(errfilepath, read.csv)
# datatable(unique(do.call(ltodf, errfiles)), extensions = "Buttons",
# options = list(paging = TRUE,
# scrollX=TRUE,
# searching = TRUE,
# ordering = TRUE,
# dom = 'Bfrtip',
# buttons = c('copy', 'csv', 'excel', 'pdf'),
# pageLength=10,
# lengthMenu=c(3,5,10) ))
tdf<-unique(do.call(ltodf, errfiles))
tdf<-tdf |>
mutate(err.deep=word(err.type,-1)) |>
mutate(err=word(err.type,1,-2)) |> select(-err.type) |>
select(c(Name, Country, err, err.deep, err.count)) |>
arrange(desc(err.count))
tdf.country<- tdf |>
group_by(Country) |>
summarize(err.count = sum(err.count)
) |>
arrange(err.count)
Lvl1dfStatus <- tibble(name = tdf.country$Country, y = tdf.country$err.count, drilldown = tolower(name))
Level_2_Drilldowns <- lapply(unique(tdf$Country), function(x_level) {
tdf.err <- tdf[tdf$Country == x_level,]
tdf.err <- tdf.err |>
group_by(err) |>
summarize(err.count = sum(err.count)
) |> arrange(err.count)
Lvl2dfStatus <- tibble(name = tdf.err$err, y = tdf.err$err.count, drilldown = tolower(paste(x_level, name, sep = "_")))
list(id = tolower(x_level), type = "column", data = list_parse(Lvl2dfStatus), name="High Level Error")
})
Level_3_Drilldowns <- lapply(unique(tdf.country$Country), function(x_level) {
tdf.err <- tdf[tdf$Country == x_level,]
lapply(unique(tdf.err$err), function(y_level) {
tdf.err.deep <- tdf.err[tdf.err$err == y_level,]
tdf.err.deep <- tdf.err.deep |>
group_by(err.deep) |>
summarize(err.count = sum(err.count)
) |> arrange(err.count)
Lvl3dfStatus <- tibble(name = tdf.err.deep$err.deep,y = tdf.err.deep$err.count)
list(id = tolower(paste(x_level, y_level, sep = "_")), type = "column", data = list_parse2(Lvl3dfStatus), name="Deep Dive")
})
}) |> unlist(recursive = FALSE)
highchart() |>
hc_xAxis(type = "category") |>
hc_add_series(Lvl1dfStatus, "column", hcaes(x = name, y = y),name = "Country View", showInLegend = F) |>
hc_plotOptions(column = list(stacking = "normal"), lang=list(drillUpText ="Back")) |>
hc_drilldown(
allowPointDrilldown = TRUE,
series = c(Level_2_Drilldowns, Level_3_Drilldowns)
) |>
hc_yAxis(
title = list(text = "Number of errors")
) |>
hc_title(text="Error Count") |>
hc_subtitle(text="Click on bar for deep dive") |>
hc_tooltip() |>
hc_credits(
enabled = TRUE,
text = "LaNubia Data Science",
href = "https://www.lanubia.com/"
) |>
hc_exporting(
enabled = TRUE, # always enabled
filename = "Error_Support"
)
4 years ago
```