O documento descreve uma apresentação sobre ciência de dados e ferramentas R para analisar dados na empresa Mobiltec. Apresenta a jornada de aprendizado do gerente de TI da empresa com R, e como aplica essas ferramentas para importar, transformar, visualizar e criar relatórios e dashboards com dados da empresa usando R, Shiny e RMarkdown. O objetivo é melhorar a visibilidade operacional e estratégica da empresa.
3. Globalcode – Open4education
Contexto de Negócio
A Mobiltec atua com ferramentas de
middleware na cadeia logística de
empresas do segmento de bebidas.
Além disso, desenvolve ferramentas para as
etapas de venda e distribuição.
Presença no mercado também com produtos de
gestão de dispositivos movéis (MDM)
4. Globalcode – Open4education
Contexto de Negócio
Mobiltec
Mobile
Middleware
SFA
Delivery
Trade
Marketing
Roteirizador A Roteirizador B
Rastreamento
Gestão
ERP
Business
Intelligence
5. Globalcode – Open4education
Desafios
Visibilidade e ‘depuração’ de problemas
operacionais por parte do time de suporte
Acompanhamento em tempo real da Big
Picture para prevenir problemas e minimizar
crises
6. Globalcode – Open4education
Jornada de Aprendizado
Desenvolvimento pessoal
Meta: Cada semestre, um
novo desafio de aprendizado
2017 - Fundamentos Ciência
de Dados e R
2018 – Shiny, RMarkdown e
Python
Data Science
Cursos Udemy
Fundamentos
R e R Avançado
Criação do blog
www.decifrandodados.com.br
e aplicação das ferramentas
Aplicação prática nos
processos na Mobiltec
12. Globalcode – Open4education
Transformação de dados
Estruturas de dados comuns
Vetores, Matrizes, ...
Bibliotecas de transformação
base – R já contém diversos operadores importantes
dplyr – Gramática de manipulação de dados
...
16. Globalcode – Open4education
Consolidando...
O ambiente do RStudio oferece uma forma amigável
e dinâmica que integra
• Ambiente de script
• Fluxo de código combinado com saída de dados
(tabelas e gráficos)
17. Globalcode – Open4education
Dashboards com Shiny
Apps web interativos com R
Responsivo e Reativo
Linguagem alto nível para construção de UI
Extenso conjunto de componentes do Shiny
http://rstudio.github.io/shinydashboard
Nessa breve introdução eu quero mostrar o meu contexto profissional, para que o público compreenda que eu (com a Mobiltec) estou em um contexto de apoio à cadeia de logística de clientes, principalmente do segmento de bebidas (Heineken, AMBEV).
Também quero mostrar a minha trajetória de quando (1) comecei a estudar por conta própria Ciência de Dados (início de 2017), (2) Percebi a utilidade destes aprendizados e (3) comecei a aplicar tanto na visibilidade e acompanhamento em tempo real das soluções como no apoio à tomada de decisão.
Quero deixar claro no início que a palestra apresenta o meu processo nesta jornada mas que também é uma palestra técnica tratando de R e suas ferramentas.
Nessa breve apresentação eu quero mostrar o meu contexto profissional, para que o público compreenda que eu (com a Mobiltec) estou em um contexto de apoio à cadeia de logística de clientes, principalmente do segmento de bebidas (Heineken, AMBEV).
Nessa breve apresentação eu quero mostrar o meu contexto profissional, para que o público compreenda que eu (com a Mobiltec) estou em um contexto de apoio à cadeia de logística de clientes, principalmente do segmento de bebidas (Heineken, AMBEV).
Nessa breve apresentação eu quero mostrar o meu contexto profissional, para que o público compreenda que eu (com a Mobiltec) estou em um contexto de apoio à cadeia de logística de clientes, principalmente do segmento de bebidas (Heineken, AMBEV).
Nessa etapa eu quero mostrar o meu processo de aprendizado. Minhas metas semestrais de aprendizados técnicos e gerenciais. No caso em 2017 comecei a aprender Ciência de Dados.
Comentar que criei o blog www.decifrandodados.com.br para registrar meus estudos e minha trajetória.
Aqui quero mostrar que a escolha inicial por R ao invés do Python foi por gosto, ao fazer primeiros cursos no Udemy. Mas que não tenho grandes preferências ou preconceitos com uma ou outra tecnologia. Temos que usar a tecnologia que melhor nos atende. Inclusive no 2º semestre de 2018 comecei a estudar e aplicar Python.
Aqui quero introduzir que iremos falar nos próximos slides sobre etapas de Ciências de Dados que poderiam ser tranquilamente desenvolvidas na plataforma .NET, que é a maior expertise da Mobiltec, mas que o R agregou muito valor em virtude de sua flexibilidade e de suas inúmeras bibliotecas prontas para as diversas etapas de ciência de dados.
Consultas deste tipo podem ser facilmente realizadas das mais variadas stacks de desenvolvimento (no meu caso o .NET), mas o R e seus pacotes vão permitir ir além facilmente, consultando dados de uma infinidade de fontes para o mesmo.
readr, (Arquivos Texto)
readxl (Excel)
jsonlite, XML, httr
RODBC, ROracle, RMySQL, RPostgres
mongolite, couchDB,
bmp, jpeg, png
bigchess
Exemplificando que é fácil buscar dados de um banco de dados com bibliotecas, como por exemplo a RODBC.
library(RODBC)
getEnabledSellers <- function () {
dbHandle <- odbcDriverConnect(dbConnStr)
enabledSellers <- sqlQuery(dbHandle, glue(“
SELECT substring(UnitCode, 3, 4) as 'Unit', Code as 'Employee’
FROM Employee
WHERE Enabled = 1 AND Role = 1 "))
odbcClose(dbHandle)
return (enabledSellers)
}
Com similar simplicidade se captura dados do MongoDB com a biblioteca mongolite.
library(mongolite)
getOrders <- function () {
m <- mongo(url=mongoUrl, db=mongoDB, collection="RealizedRouteCollection")
orders <- m$find( paste0(
'{ "EmissionDate": { "$gte": reportPeriod[1], "$lt": reportPeriod[2] } }’),
'{ "EmissionDate": 1, "Unit": 1, "_id": 1 }’
)
orders$Unit <- factor(substr(orders$Unit, 3, 6))
orders$Employee <- substr(orders$`_id`, 4, 11)
return (orders)
}
Mais um exemplo, agora lendo dados de arquivos CSV com readr.
library(readr)
files <- list.files(path = logPath, pattern = "^OrdersQueue.log", full.names = TRUE)
orders <- lapply(files, function (fileName) {
read_csv2(fileName, col_names = c('Data', 'Unidade', 'Vendedor', 'CNPJ’))
})
orders <- do.call('rbind', orders)
Trazendo os dados para uma estrutura padrão podemos usar o ambiente computacional do R e seus diversos pacotes para manipulação dos dados.
orders <- getOrders()
enabledSellers <- getEnabledSellers()
sellersPostOrders <- unique(orders[,c("Unit", "Employee")])
activeSellers <- intersect(sellersPostOrders[,c("Unit", "Employee")], enabledSellers[,c("Unit", "Employee")])
Sendo possível matrizes com teoria de conjuntos, mas também com outras estruturas, por exemplo
dplyr - Gramática de manipulação de dados. Possível fazer filtragens, agrupamentos, etc etc.
Indo além, vamos para a capacidade de plotagem de dados
ordersByDay <- ddply(orders, .(EmissionDate), nrow)
ggplot(data = ordersByDay) +
geom_col(aes(x = Date, y=round(V1 / 1E+3, 2))) +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5)) +
scale_x_date(name="Data", date_labels = '%d/%m', date_breaks='1 day') +
ylab("Quant. de pedidos (milhares)")
Aqui eu vou mostrar o projeto Estimativas Populacionais