rm(list = ls())
setwd('Z:/Área Técnica/Rotina/Projeções/R214_Tratamento de dados/SEFAZ/TRATAMENTO ATUAL/SOJA/NOVO TRATAMENTO SAFRA COMPLETA')
pacman::p_load(arrow,ggplot2,readr,
readxl,tibble,lattice,
stringr,dplyr,data.table,
tidyr,outliers,rio,
stringdist)
#---------------------------------------------------------#
#---------------------------------------------------------#
#carregar dados de 2024 , NCM e juntar as bases
dados_2024 = read_parquet('imea_jan_dez_24.parquet')
dados_2023 = read_parquet('imea_jan_dez_23.parquet')
dados_2022 = read_parquet('imea_jan_dez_22.parquet')
NCM <- read_excel("NCM.xlsx")|>
dplyr:: filter(Produto=="Milho"|Produto=="Soja" | Produto=="Algodão em pluma") |> # selecionar os produtos para o tratamento
dplyr::rename(NUMR_NCM='NCM')
amostra_2024 = dplyr::inner_join(dados_2024,NCM)
amostra_2023 = dplyr::inner_join(dados_2023,NCM)
amostra_2022 = dplyr::inner_join(dados_2022,NCM)Metodologia Frete Sefaz- Soja , Milho e Algodão
1 Estrutura central do tratamento
2 Tratamento Frete
O tratamento para cálculo do frete, é feito por ano e da mesma forma para as culturas de Soja, Milho e algodão, a seguir é mostrado o passo a passo de como foi feito o tratamento.
2.1 Passo 1: Importação dos dados
Nesta primeira etapa, é importado os dados disponibilizados pela Sefaz, no software R, juntamente com o NCM do Imea, onde se vincula esses dados para podermos filtrar o que consideramos como Soja, Milho e Algodão, segundo o NCM.
2.2 Passo 2: Filtragem de informações não fundamentias
Esta etapa é a parte central do tratamento, pois é a onde importamos as descrições dos produtos que não consideramos, essas informações podem ser encontradas neste seguinte caminho: “Z:\Área Técnica\Rotina\Projeções\R214_Tratamento de dados\SEFAZ\TRATAMENTO ATUAL\SOJA\NOVO TRATAMENTO SAFRA COMPLETA\Desc.xlsx”. A partir desta etapa o tratamento é feito por ano, além disso, é filtrado manualmente as informações que são e que se pareça com KG e T. No caso das descrições do produto, é retirado do banco de dados as informações que não necessitamos.
#------------------------ TRATAMENTO FRETE 2022 ------------------#
#---------------------------------------------------------#
#------------------------ FILTRAGEM------------------#
desconsiderar = read_excel("Desc.xlsx", col_names = FALSE) # carregar base de descrições inuteis
desconsiderar_list = desconsiderar[[1]] # colocar no formato certo
amostra_2022_2 = dados_2022 %>% filter(grepl("Soja|SOJA|soja", DESC_PRODUTO, ignore.case = T)) # filtrar apenas soja
amostra_2022_2 = amostra_2022_2 %>% filter(!DESC_PRODUTO %in% desconsiderar_list) # desconsiderar as descrições
text <- c(
"PESO BRUTO", "PESO COBRADO", "PESO REAL", "KG", "TONELADA", "PESO BASE DE CALCULO",
"PESO", "PESO_BRUTO", "PESO DECLARADO", "PESO AFERIDO(Kg)", "QUILOGRAMA", "PESO AFERIDO", "TON", "Peso liq. (kg)",
"Peso bruto (kg)", "BRUTO", "PESO CARGA", "A GRANEL", "EPSO BRUTO", "KILOGRAMAS", "Quilos", "QUILO", "KILOGRAMA",
"PESO BASE CÁLC.(Kg)", "PESO BRUTO(Kg)", "KILO", "SACAS", "BASE", "T", "QUILOGRAMAS", "TN", "PESO_AFERIDO", "PESO_BASE_CALCULO", "Peso.Base", "Peso.Decl",
"toneladas", "GRANEL", "MILHO EM GRAOS", "Unidades", "PESO EM QUILOS", "MILHO", "AGRANEL", "MILHO EM GRAOS A GRA", "TO", "PESO APROXIMADO", "GUILOS", "QTDE. VOLUMES", "MILHO A GRANEL", "MILHO EM GRAO", "QUIKOGRAMA", "KILOS",
"QIOLOGRAMA", "PESO KG", "PEOS BRUTO", "UND/KG", "TH", "KILOGRMA", "KH", "PB", "GRAO")
text = tolower(text)
pattern <- paste(text, collapse = "|")
amostra_2022_2 = amostra_2022_2 %>%
mutate(TIPO_MEDIDA = tolower(TIPO_MEDIDA)) %>%
filter(grepl(pattern, TIPO_MEDIDA)) %>%
filter(!TIPO_MEDIDA == 'litragem')2.3 Passo 3: Modificação das variáveis
Esta etapa é destinada a transformação das variáveis, pois muitas informações vêm como texto, sendo que são numéricas, devido ao padrão brasileiro, que o separador de decimais é a virgula, as variáveis são as VALOR_PRESTACAO_SERVICO e QTDE_CARGA. Além disso é transformado a variável QTDE_CARGA em toneladas.
#------------------------ TRANSFORMAÇÂO EM NUMÈRICO ------------------#
amostra_2022_2$QTDE_CARGA = gsub(",",".", amostra_2022_2$QTDE_CARGA)
amostra_2022_2$QTDE_CARGA = as.numeric(amostra_2022_2$QTDE_CARGA)
amostra_2022_2 = amostra_2022_2 %>%
mutate(QTDE_CARGA = if_else(UNIDADE_MEDIDA == 'TON', QTDE_CARGA*1000,QTDE_CARGA)) %>%
mutate(QTDE_CARGA = QTDE_CARGA/1000) %>%
mutate(UNIDADE_MEDIDA = "TON")
#---------------------------------------------------------#
#------------------------ TRANSFORMAÇÂO EM NUMÈRICO ------------------#
amostra_2022_2$VALOR_PRESTACAO_SERVICO = gsub("\\.","", amostra_2022_2$VALOR_PRESTACAO_SERVICO)
amostra_2022_2$VALOR_PRESTACAO_SERVICO = gsub(",",".",amostra_2022_2$VALOR_PRESTACAO_SERVICO)
amostra_2022_2$VALOR_PRESTACAO_SERVICO = as.numeric(amostra_2022_2$VALOR_PRESTACAO_SERVICO)
#---------------------------------------------------------#2.4 Passo 4: Cálculo do frete
Para se calcular o frete, utilizasse as variáveis transformadas e feita a seguinte operação:
Valor frete = VALOR_PRESTACAO_SERVICO/ QTD_CARGA
Em seguida é retirado os valores ausentes referente a operção feita.
#------------------------ calculo do frete------------------#
# calculando o valor do frete
amostra_2022_2 = amostra_2022_2 %>%
mutate(valor_frete_RS_T = (VALOR_PRESTACAO_SERVICO/QTDE_CARGA))
amostra_2022_2 <- amostra_2022_2 %>%
filter(is.finite(valor_frete_RS_T) & !is.na(valor_frete_RS_T))
boxplot(amostra_2022_2$valor_frete_RS_T)2.5 Passo 5: Remoção de valores duplicados
É retirado as variáveis TIPO_MEDIDA, UNIDADE_MEDIDA, VALOR_ICMS_PRODUTO CODG_CST_ICMS, pois já temos todos os valores em toneladas e as outras variáveis não são utilizadas e impactam na detecção de valores duplicados.
#------------------------ REMOVER VALORES DUPLICADOS ------------------#
amostra_2022_2 = amostra_2022_2 %>%
select(!c(TIPO_MEDIDA, UNIDADE_MEDIDA, VALOR_ICMS_PRODUTO,CODG_CST_ICMS))
duplicados<- duplicated(amostra_2022_2, fromLast = T)
df_2022 = amostra_2022_2[!duplicados,]2.6 Passo 6: Remoção de Outliers
A remoção é feita pelo método interquartílico (IQR). Ele se baseia nos quartis do conjunto de dados e no intervalo interquartil (IQR), que é definido como a diferença entre o terceiro quartil (Q3) e o primeiro quartil (Q1).
#------------------------ REMOVER OUTLIERS ------------------#
q1_vfrete = quantile(df_2022$valor_frete_RS_T, 0.25)
q3_vfrete = quantile(df_2022$valor_frete_RS_T, 0.75)
irq_vfrete = IQR(df_2022$valor_frete_RS_T)
lim_inf = q1_vfrete-(1.5*irq_vfrete)
lim_sup = q3_vfrete+(1.5*irq_vfrete)
x_filtered <- df_2022%>%
filter(valor_frete_RS_T >= lim_inf & valor_frete_RS_T <= lim_sup)2.7 Passo 7: Filtragem de valores coerentes
Mesmo removendo outliers, devido a complexidade dos dados, as diversas rotas, descrições equivocadas, ainda é necessário a filtragem de valores de frete que fazem sentido, então é comparado os valores com o banco de dados do Imea e foi definido os valores de máximo e mínimo.
#------------------------ FITRAGEM DE VALORES COERENTES ------------------#
x = x_filtered %>%
filter(valor_frete_RS_T >= 20)
x = x %>%
filter(valor_frete_RS_T <= 600)2.8 Passo 8: Juntando as bases
Depois de realizado os 7 passos para cada ano (2022,2023,2024) é combinado os tratamentos, tendo assim, a base completa dos 3 anos, logo a pós a junção, é feita outra remoção de outliers para garantir que os dados estejam minimamente coerentes, onde essa base final é exportada no formato CSV, onde esta é utilizada na construção do Dashboard.
#------------------------ JUTNANDO OS TRATAMENTOS ------------------#
dados_F = rbind(x_2022,x_2023,x_2024)
#---------------------------------------------------------#
q1_vfrete = quantile(dados_F$valor_frete_RS_T, 0.25)
q3_vfrete = quantile(dados_F$valor_frete_RS_T, 0.75)
irq_vfrete = IQR(dados_F$valor_frete_RS_T)
lim_inf = q1_vfrete-(1.5*irq_vfrete)
lim_sup = q3_vfrete+(1.5*irq_vfrete)
x_F <- dados_F%>%
filter(valor_frete_RS_T >= lim_inf & valor_frete_RS_T <= lim_sup)
#-------------------------------------------------------------------#
write.csv2(dados_F, 'TRATAMENTO_FRETE_SEM_REMOCAO_NO_FINAL.csv', fileEncoding = 'Latin1',row.names = F)3 Tratamento Preço
O tratamento para o preço, é feito por ano e da mesma forma para as culturas de Soja, Milho e algodão, a seguir é mostrado o passo a passo de como foi feito o tratamento.
3.1 Passo 1: Importação dos dados
Nesta primeira etapa, é importado os dados disponibilizados pela Sefaz, no software R, juntamente com o NCM do Imea, onde se vincula esses dados para podermos filtrar o que consideramos como Soja, Milho e Algodão, segundo o NCM.
rm(list = ls())
setwd('Z:/Área Técnica/Rotina/Projeções/R214_Tratamento de dados/SEFAZ/TRATAMENTO ATUAL/SOJA/NOVO TRATAMENTO SAFRA COMPLETA')
pacman::p_load(arrow,ggplot2,readr,
readxl,tibble,lattice,
stringr,dplyr,data.table,
tidyr,outliers,rio,
stringdist)
#---------------------------------------------------------#
#---------------------------------------------------------#
#carregar dados de 2024 , NCM e juntar as bases
dados_2024 = read_parquet('imea_jan_dez_24.parquet')
dados_2023 = read_parquet('imea_jan_dez_23.parquet')
dados_2022 = read_parquet('imea_jan_dez_22.parquet')
NCM <- read_excel("NCM.xlsx")|>
dplyr:: filter(Produto=="Milho"|Produto=="Soja" | Produto=="Algodão em pluma") |> # selecionar os produtos para o tratamento
dplyr::rename(NUMR_NCM='NCM')
amostra_2024 = dplyr::inner_join(dados_2024,NCM)
amostra_2023 = dplyr::inner_join(dados_2023,NCM)
amostra_2022 = dplyr::inner_join(dados_2022,NCM)3.2 Passo 2: Filtragem de informações não fundamentias
Esta etapa é a parte central do tratamento, pois é onde são importamos as descrições dos produtos que não consideramos, essas informações podem ser encontradas neste seguinte caminho: “Z:\Área Técnica\Rotina\Projeções\R214_Tratamento de dados\SEFAZ\TRATAMENTO ATUAL\SOJA\NOVO TRATAMENTO SAFRA COMPLETA\Desc.xlsx”. A partir desta etapa o tratamento é feito por ano, além disso, é filtrado manualmente as informações que são e que se pareça com KG e T. No caso das descrições do produto, é retirado do banco de dados as informações que não necessitamos.
#------------------------ TRATAMENTO PRECO 2022 ------------------#
#---------------------------------------------------------#
desconsiderar = read_excel("Desc.xlsx", col_names = FALSE)
desconsiderar_list = desconsiderar[[1]]
amostra_2022_2 = dados_2022 %>% filter(grepl("Soja|SOJA|soja", DESC_PRODUTO, ignore.case = T))
amostra_2022_2 = amostra_2022_2 %>% filter(!DESC_PRODUTO %in% desconsiderar_list)
amostra_2022_2 = amostra_2022_2 %>% filter(!grepl("Semente|SEMENTE|semente|sem|SEM|Sem", DESC_PRODUTO, ignore.case = T))
amostra_2022_2 = amostra_2022_2 %>% filter(!grepl("FARELO|Farelo|farelo|far|FAR", DESC_PRODUTO,ignore.case = T ))
text <- c(
"PESO BRUTO", "PESO COBRADO", "PESO REAL", "KG", "TONELADA", "PESO BASE DE CALCULO",
"PESO", "PESO_BRUTO", "PESO DECLARADO", "PESO AFERIDO(Kg)", "QUILOGRAMA", "PESO AFERIDO", "TON", "Peso liq. (kg)",
"Peso bruto (kg)", "BRUTO", "PESO CARGA", "A GRANEL", "EPSO BRUTO", "KILOGRAMAS", "Quilos", "QUILO", "KILOGRAMA",
"PESO BASE CÁLC.(Kg)", "PESO BRUTO(Kg)", "KILO", "SACAS", "BASE", "T", "QUILOGRAMAS", "TN", "PESO_AFERIDO", "PESO_BASE_CALCULO", "Peso.Base", "Peso.Decl",
"toneladas", "GRANEL", "MILHO EM GRAOS", "Unidades", "PESO EM QUILOS", "MILHO", "AGRANEL", "MILHO EM GRAOS A GRA", "TO", "PESO APROXIMADO", "GUILOS", "QTDE. VOLUMES", "MILHO A GRANEL", "MILHO EM GRAO", "QUIKOGRAMA", "KILOS",
"QIOLOGRAMA", "PESO KG", "PEOS BRUTO", "UND/KG", "TH", "KILOGRMA", "KH", "PB", "GRAO")
text = tolower(text)
pattern <- paste(text, collapse = "|")
amostra_2022_2 = amostra_2022_2 %>%
mutate(TIPO_MEDIDA = tolower(TIPO_MEDIDA)) %>%
filter(grepl(pattern, TIPO_MEDIDA)) %>%
filter(!TIPO_MEDIDA == 'litragem')3.3 Passo 3: Modificação das variáveis
Esta etapa é destinada a transformação das variáveis, pois muitas informações vêm como texto, sendo que são numéricas, devido ao padrão brasileiro, que o separador de decimais é a virgula, a variável modificada é a VALOR_PRESTACAO_SERVICO.
#---------------------------------------------------------#
amostra_2022_2$VALR_UNIDADE_COMERCIAL = gsub("\\.","", amostra_2022_2$VALR_UNIDADE_COMERCIAL)
amostra_2022_2$VALR_UNIDADE_COMERCIAL = gsub(",",".", amostra_2022_2$VALR_UNIDADE_COMERCIAL)
amostra_2022_2$VALR_UNIDADE_COMERCIAL = as.numeric(amostra_2022_2$VALR_UNIDADE_COMERCIAL)
boxplot(amostra_2022_2$VALR_UNIDADE_COMERCIAL)
#---------------------------------------------------------#3.4 Passo 4: Remoção de valores duplicados
É retirado as variáveis TIPO_MEDIDA, UNIDADE_MEDIDA, VALOR_ICMS_PRODUTO CODG_CST_ICMS, pois já temos todos os valores em toneladas e as outras variáveis não são utilizadas e impactam na detecção de valores duplicados.
#---------------------------------------------------------#
amostra_2022_2 = amostra_2022_2 %>%
select(!c(TIPO_MEDIDA, UNIDADE_MEDIDA, VALOR_ICMS_PRODUTO,CODG_CST_ICMS))
duplicados<- duplicated(amostra_2022_2, fromLast = T)
df_2022 = amostra_2022_2[!duplicados,]
#---------------------------------------------------------#3.5 Passo 5: Transformação do valor para sacas
Nesta etapa é multiplicado a variável VALR_UNIDADE_COMERCIAL por 60, para se obter o valor em sacas.
#---------------------------------------------------------#
df_2022 = df_2022 %>%
mutate(preco = df_2022$VALR_UNIDADE_COMERCIAL * 60)
boxplot(df_2022$preco)
#---------------------------------------------------------#3.6 Passo 6: Filtragem de valores coerentes
Devido a complexidade dos dados, as diversas rotas, descrições equivocadas, ainda é necessário a filtragem de valores de frete que fazem sentido, então é comparado os valores com o banco de dados do Imea e foi definido os valores de máximo e mínimo.
#---------------------------------------------------------#
x = df_2022 %>%
filter(preco >= 70)
x = x %>%
filter(preco <= 200)
boxplot(x$preco)
summary(x$preco)
#---------------------------------------------------------#3.7 Passo 7: Remoção de Outliers
A remoção é feita pelo método interquartílico (IQR). Ele se baseia nos quartis do conjunto de dados e no intervalo interquartil (IQR), que é definido como a diferença entre o terceiro quartil (Q3) e o primeiro quartil (Q1).
#---------------------------------------------------------#
q1_vfrete = quantile(x$preco, 0.25)
q3_vfrete = quantile(x$preco, 0.75)
irq_vfrete = IQR(x$preco)
lim_inf = q1_vfrete-(1.5*irq_vfrete)
lim_sup = q3_vfrete+(1.5*irq_vfrete)
x_2022 <- x%>%
filter(preco >= lim_inf & preco <= lim_sup)
boxplot(x_2022$preco)
summary(x_2022$preco)
#---------------------------------------------------------#3.8 Passo 8: Juntando as bases
Depois de realizado os 7 passos para cada ano (2022,2023,2024) é combinado os tratamentos, tendo assim, a base completa dos 3 anos, onde essa base final é exportada no formato CSV, que é utilizada na construção do Dashboard.
#------------------------ JUTNANDO OS TRATAMENTOS ------------------#
dados_F = rbind(x_2022,x_2023,x_2024)
boxplot(dados_F$preco)
summary(dados_F$preco)
write.csv2(dados_F, 'TRATAMENTO_PRECO_SEM_REMOCAO_NO_FINAL.csv', fileEncoding = 'Latin1',row.names = F)4 Tratamento Volume
O tratamento para o volume, é feito por ano e da mesma forma para as culturas de Soja, Milho e Algodão, a seguir é mostrado o passo a passo de como foi feito o tratamento.
4.1 Passo 1: Importação dos dados
Nesta primeira etapa, é importado os dados disponibilizados pela Sefaz, no software R, juntamente com o NCM do Imea, onde se vincula esses dados para podermos filtrar o que consideramos como Soja, Milho e Algodão, segundo o NCM.
#_____________________TRATAMENTO POR ANO_____________________#
rm(list = ls())
setwd('Z:/Área Técnica/Rotina/Projeções/R214_Tratamento de dados/SEFAZ/TRATAMENTO ATUAL/SOJA/NOVO TRATAMENTO SAFRA COMPLETA')
pacman::p_load(arrow,ggplot2,readr,
readxl,tibble,lattice,
stringr,dplyr,data.table,
tidyr,outliers,rio,
stringdist)
#---------------------------------------------------------#
#---------------------------------------------------------#
#carregar dados de 2024 , NCM e juntar as bases
dados_2024 = read_parquet('imea_jan_dez_24.parquet')
dados_2023 = read_parquet('imea_jan_dez_23.parquet')
dados_2022 = read_parquet('imea_jan_dez_22.parquet')
NCM <- read_excel("NCM.xlsx")|>
dplyr:: filter(Produto=="Milho"|Produto=="Soja" | Produto=="Algodão em pluma") |> # selecionar os produtos para o tratamento
dplyr::rename(NUMR_NCM='NCM')
amostra_2024 = dplyr::inner_join(dados_2024,NCM)
amostra_2023 = dplyr::inner_join(dados_2023,NCM)
amostra_2022 = dplyr::inner_join(dados_2022,NCM)4.2 Passo 2: Filtragem de informações não fundamentais
Esta etapa é a parte central do tratamento, pois é onde são importamos as descrições dos produtos que não consideramos, essas informações podem ser encontradas neste seguinte caminho: “Z:\Área Técnica\Rotina\Projeções\R214_Tratamento de dados\SEFAZ\TRATAMENTO ATUAL\SOJA\NOVO TRATAMENTO SAFRA COMPLETA\Desc.xlsx”. A partir desta etapa o tratamento é feito por ano, além disso, é filtrado manualmente as informações que são e que se pareça com KG e T. No caso das descrições do produto, é retirado do banco de dados as informações que não necessitamos.
#------------------------ TRATAMENTO PRECO 2022 ------------------#
#---------------------------------------------------------#
desconsiderar = read_excel("Desc.xlsx", col_names = FALSE)
desconsiderar_list = desconsiderar[[1]]
amostra_2022_2 = dados_2022 %>% filter(grepl("Soja|SOJA|soja", DESC_PRODUTO, ignore.case = T))
amostra_2022_2 = amostra_2022_2 %>% filter(!DESC_PRODUTO %in% desconsiderar_list)
amostra_2022_2 = amostra_2022_2 %>% filter(!grepl("Semente|SEMENTE|semente|sem|SEM|Sem", DESC_PRODUTO, ignore.case = T))
amostra_2022_2 = amostra_2022_2 %>% filter(!grepl("FARELO|Farelo|farelo|far|FAR", DESC_PRODUTO,ignore.case = T ))
text <- c(
"PESO BRUTO", "PESO COBRADO", "PESO REAL", "KG", "TONELADA", "PESO BASE DE CALCULO",
"PESO", "PESO_BRUTO", "PESO DECLARADO", "PESO AFERIDO(Kg)", "QUILOGRAMA", "PESO AFERIDO", "TON", "Peso liq. (kg)",
"Peso bruto (kg)", "BRUTO", "PESO CARGA", "A GRANEL", "EPSO BRUTO", "KILOGRAMAS", "Quilos", "QUILO", "KILOGRAMA",
"PESO BASE CÁLC.(Kg)", "PESO BRUTO(Kg)", "KILO", "SACAS", "BASE", "T", "QUILOGRAMAS", "TN", "PESO_AFERIDO", "PESO_BASE_CALCULO", "Peso.Base", "Peso.Decl",
"toneladas", "GRANEL", "MILHO EM GRAOS", "Unidades", "PESO EM QUILOS", "MILHO", "AGRANEL", "MILHO EM GRAOS A GRA", "TO", "PESO APROXIMADO", "GUILOS", "QTDE. VOLUMES", "MILHO A GRANEL", "MILHO EM GRAO", "QUIKOGRAMA", "KILOS",
"QIOLOGRAMA", "PESO KG", "PEOS BRUTO", "UND/KG", "TH", "KILOGRMA", "KH", "PB", "GRAO")
text = tolower(text)
pattern <- paste(text, collapse = "|")
amostra_2022_2 = amostra_2022_2 %>%
mutate(TIPO_MEDIDA = tolower(TIPO_MEDIDA)) %>%
filter(grepl(pattern, TIPO_MEDIDA)) %>%
filter(!TIPO_MEDIDA == 'litragem')
amostra_2022_2 = amostra_2022_2 %>%
filter(grepl("(?i)KG|kg|Kilo grama|Quilo Grama|TON|Ton|Tonelada", UNIDADE_MEDIDA))
#---------------------------------------------------------#4.3 Passo 3: Modificação das variáveis
Esta etapa é destinada a transformação das variáveis, pois muitas informações vêm como texto, sendo que são numéricas, devido ao padrão brasileiro, que o separador de decimais é a virgula, a variável modificada é a QTDE_CARGA.
#---------------------------------------------------------#
amostra_2022_2$QTDE_CARGA = gsub(",",".", amostra_2022_2$QTDE_CARGA)
amostra_2022_2$QTDE_CARGA = as.numeric(amostra_2022_2$QTDE_CARGA)
boxplot(amostra_2022_2$QTDE_CARGA)
#---------------------------------------------------------#4.4 Passo 4: Transformar a variável em toneladas
Este passo é para deixar todas as informações da variável em toneladas, visando facilitar futuros cálculos.
#---------------------------------------------------------#
amostra_2022_2 = amostra_2022_2 %>%
mutate(QTDE_CARGA = ifelse(QTDE_CARGA >= 1000, QTDE_CARGA / 1000, QTDE_CARGA))
#---------------------------------------------------------#4.5 Passo 5: Remoção de valores duplicados
É retirado as variáveis TIPO_MEDIDA, UNIDADE_MEDIDA, VALOR_ICMS_PRODUTO,CODG_CST_ICMS, pois já temos todos os valores em toneladas e as outras variáveis não são utilizadas e impactam na detecção de valores duplicados.
#---------------------------------------------------------#
amostra_2022_2 = amostra_2022_2 %>%
select(!c(TIPO_MEDIDA, UNIDADE_MEDIDA, VALOR_ICMS_PRODUTO,CODG_CST_ICMS))
duplicados<- duplicated(amostra_2022_2, fromLast = T)
df_2022 = amostra_2022_2[!duplicados,]
amostra_2022_2 = df_2022
#---------------------------------------------------------#4.6 Passo 6: Remoção de outliers
A remoção é feita pelo método interquartílico (IQR). Ele se baseia nos quartis do conjunto de dados e no intervalo interquartil (IQR), que é definido como a diferença entre o terceiro quartil (Q3) e o primeiro quartil (Q1).
#---------------------------------------------------------#
q1_vfrete = quantile(amostra_2022_2$QTDE_CARGA, 0.25)
q3_vfrete = quantile(amostra_2022_2$QTDE_CARGA, 0.75)
irq_vfrete = IQR(amostra_2022_2$QTDE_CARGA)
lim_inf = q1_vfrete-(1.5*irq_vfrete)
lim_sup = q3_vfrete+(1.5*irq_vfrete)
x_filtered <- amostra_2022_2 %>%
filter(QTDE_CARGA >= lim_inf & QTDE_CARGA <= lim_sup)
boxplot(x_filtered$QTDE_CARGA)
x_22 = x_filtered
#---------------------------------------------------------#4.7 Passo 7: Agrupando as bases
Depois de realizado os 7 passos para cada ano (2022,2023,2024) é combinado os tratamentos, tendo assim, a base completa dos 3 anos, onde essa base final é exportada no formato CSV, que é utilizada na contrução do Dashboard.
#------------------------ JUTNANDO OS TRATAMENTOS ------------------#
dados_F = rbind(x_22,x_23,x_24)
write.csv2(x_filtered, 'TRATAMENTO_VOLUME.csv', fileEncoding = 'Latin1',row.names = F)5 Conclusões
Os dados utilizados neste tratamento apresentam um alto grau de complexidade, devido às múltiplas variáveis que precisam ser cuidadosamente analisadas e às interações que ocorrem entre elas. Essa complexidade, enquanto enriquece o conjunto de informações e possibilita uma visão mais abrangente, também traz desafios significativos para a interpretação e a precisão dos resultados.
Apesar dos métodos aplicados fornecerem insights valiosos, é fundamental reconhecer tanto as limitações quanto as áreas de potencial melhoria, algumas limitações decorrem da qualidade e integridade dos dados disponíveis, além de possíveis restrições dos modelos de captura de nuances específicas.