library(data.table)
library(openxlsx)
library(dplyr)
library(tidyr)
library(stringi)
getwd()         # O diretório mostrado deve ser o mesmo do arquivo "1. DOF e Sisflora.R"
setwd("./PA SISFLORA 2.0")
lista <- list.files(pattern=".csv")
lista <- lista[grepl("^[PA]",lista)]        # o comando grepl indica que queremos apenas os arquivos .xlsx cujos nomes se iniciam com as letras "PA".
pa2.0 <- data.table()
for (i in 1:length(lista)) {
x <- fread(lista[i], select = c("TIPO_GF",
"STATUS_GF",
"UF_REMETENTE",
"MUNICÍPIO_REMETENTE",
"TIPO_DESTINO",
"CEPROF_DESTINATÁRIO",
"UF_DESTINATÁRIO",
"MUNICÍPIO_DESTINATÁRIO",
"N_AUTORIZAÇÃO",
"PROCESSO",
"EMISSAO",
"NOME_CIENTÍFICO",
"PRODUTO",
"VOLUME",
"UNID",
"PRECO_TOTAL"),
col.names = c("Tipo.de.Guia",
"Status.Guia",
"UF.Origem",
"Municipio.Origem",
"Exportacao",
"Cadastro.Destino",
"UF.Destino",
"Municipio.Destino",
"Autorizacao",
"Processo",
"Emissao",
"Especie",
"Produto",
"Volume.Total",
"Unidade",
"Preco.Total"))         # a função fread do pacote data.table() lê arquivos .csv mais rapidamente.
pa2.0 <- rbind(pa2.0, x)                                                # fusiona as planilhas intermediária para formar uma única planilha pa2.0
}
rm (x, i, lista)
# Agrega a soma do volume total e do preço total conforme as colunas escolhidas no argumento
# "by". Ao final do comando, as variáveis "VOLUME" e "PRECO_TOTAL" serão renomeadas para
# V1 e V2, respectivamente.
pa2.0 <- pa2.0[, .(sum(Volume.Total), sum(Preco.Total)),
by = .(Tipo.de.Guia,
Status.Guia,
UF.Origem,
Municipio.Origem,
Exportacao,
Cadastro.Destino,
UF.Destino,
Municipio.Destino,
Autorizacao,
Processo,
Emissao,
Especie,
Produto,
Unidade)]
# Lê planilha Saldos ACT/ACP
act <- fread("saldoActAcp 10-01-2008 (simplificado).csv",
header = TRUE,
select = c("N_AUTORIZAÇÃO",
"N_PROCESSO",
"TIPO_CRÉDITO"),
col.names = c("N_AUTORIZAÇÃO",
"N_PROCESSO",
"TIPO_CRÉDITO"))    # o argumento select permite escolher colunas específicas para serem lidas.
View(act)
act <- act[, .N, keyby = .(N_AUTORIZAÇÃO, N_PROCESSO, TIPO_CRÉDITO)]    # o argumento ".N" lista, em uma data.table, o número de ocorrências de cada uma das combinações de valores das variávei passadas no argumento "keyby".
# Inclui a variável "TIPO_CRÉDITO" ao final da planilha pa2.0
pa2.0 <- merge(pa2.0, act, by.x = c("Autorizacao", "Processo"),
by.y = c("N_AUTORIZAÇÃO", "N_PROCESSO"), all.x = TRUE)
View(pa2.0)
rm(act)                                                                 # remove a planilha act
# Elimina as colunas N_AUTORIZAÇÃO, PROCESSO e N.
pa2.0 <- select(pa2.0, -Autorizacao, -Processo, -N)
View(pa2.0)
# Renomeia colunas de pa2.0.
pa2.0 <- rename(pa2.0,
"Volume.Total" = "V1",
"Preco.Total" = "V2",
"Tipo.de.Origem" = "TIPO_CRÉDITO")
View(pa2.0)
# salva pa2.0 em uma planilha .csv
write.csv(pa2.0, file ="SisfloraPA_2.0.csv")
# Lista os arquivos do diretório e cria o objeto "lista"
setwd("..")                         # sobe um diretório para retornar ao diretório inicial do script
setwd("./PA SISFLORA 1.0")
lista <- list.files(pattern=".csv")
lista <- lista[grepl("^[PA]",lista)]        # o comando grepl indica que queremos apenas os arquivos .xlsx cujos nomes se iniciam com as letras "PA".
pa1.0 <- data.table()
for (i in 1:length(lista)) {
x <- fread(lista[i], select = c("Tipo",
"Status",
"Origem",
"UF.Remetente",
"Município.Remetente",
"Exportação",
"CEPROF.Destinatário",
"UF.Destinatário",
"Município.Destinatário",
"Emissão",
"Nome.Científico",
"Produto",
"Volume",
"Unid",
"Preço.Total.R$"),
col.names = c("Tipo.de.Guia",
"Status.Guia",
"Tipo.de.Origem",
"UF.Origem",
"Municipio.Origem",
"Exportacao",
"Cadastro.Destino",
"UF.Destino",
"Municipio.Destino",
"Emissao",
"Especie",
"Produto",
"Volume.Total",
"Unidade",
"Preco.Total"))
pa1.0 <- rbind(pa1.0, x)
}
rm (x, i, lista)
# Agrega a soma do volume total e do preço total conforme as colunas escolhidas no argumento
# "by". Ao final do comando, as variáveis "VOLUME" e "PRECO_TOTAL" serão renomeadas para
# V1 e V2, respectivamente.
pa1.0 <- pa1.0[, .(sum(Volume.Total), sum(Preco.Total)),
by = .(Tipo.de.Guia,
Status.Guia,
Tipo.de.Origem,
UF.Origem,
Municipio.Origem,
Exportacao,
Cadastro.Destino,
UF.Destino,
Municipio.Destino,
Emissao,
Especie,
Produto,
Unidade)]
# Renomeia coliunas de pa1.0.
pa1.0 <- rename(pa1.0,
"Volume.Total" = "V1",
"Preco.Total" = "V2")
write.csv(pa1.0, file ="SisfloraPA_1.0.csv")
#Fusiona pa1.0 com pa2.0
pa <- rbind(pa1.0,pa2.0)
# Elimina as planilhas intermediárias
rm(pa1.0, pa2.0)
# Converter a classe da coluna emissão para data:
pa$Emissao <- data.frame(data.frame(as.Date(pa$Emissao,
format = "%d/%m/%Y",
origin = "30/12/1899"))) # o formato passado aqui é referente à data informada no argumento origin.
# Formatar data para mostrar apenas o ano:          # ver https://www.statmethods.net/input/dates.html para formatos de datas
pa$Emissao <- format(pa$Emissao, format = "%m-%Y")   # Formato jan/2012: sisflora$Emissão <- format(sisflora$Emissão, format="%b/%Y")
View(pa)
write.csv(pa, file = "SisfloraPA_2012_2017.csv")
# Lista os arquivos do diretório e cria o objeto "lista"
setwd("..")
setwd("./MT SISFLORA")
lista <- list.files(pattern=".csv")
lista <- lista[grepl("^[MT]",lista)]        # o comando grepl indica que queremos apenas os arquivos .xlsx cujos nomes se iniciam com as letras "PA".
mt <- data.table()
for (i in 1:length(lista)) {
x <- fread(lista[i], select = c("Tipo",
"Status",
"Origem",
"UF.Remetente",
"Município.Remetente",
"Exportação",
"CC-SEMA.Destinatário",
"UF.Destinatário",
"Município.Destinatário",
"Emissão",
"Nome.Científico",
"Produto",
"Volume",
"Unid",
"Preço.Total.R$"),
col.names = c("Tipo.de.Guia",
"Status.Guia",
"Tipo.de.Origem",
"UF.Origem",
"Municipio.Origem",
"Exportacao",
"Cadastro.Destino",
"UF.Destino",
"Municipio.Destino",
"Emissao",
"Especie",
"Produto",
"Volume.Total",
"Unidade",
"Preco.Total"))
mt <- rbind(mt, x)
}
rm (i, x, lista)
# Agrega a soma do volume total e do preço total conforme as colunas escolhidas no argumento
# "by". Ao final do comando, as variáveis "VOLUME" e "PRECO_TOTA"L serão renomeadas para
# V1 e V2, respectivamente.
mt <- mt[, .(sum(Volume.Total), sum(Preco.Total)),
by = .(Tipo.de.Guia,
Status.Guia,
Tipo.de.Origem,
UF.Origem,
Municipio.Origem,
Exportacao,
Cadastro.Destino,
UF.Destino,
Municipio.Destino,
Emissao,
Especie,
Produto,
Unidade)]
# Renomeia mt. Primeiro como teste para pa2.2, depois definitivamente para pa2.0
mt <- rename(mt,
"Volume.Total" = "V1",
"Preco.Total" = "V2")
# Converter a classe da coluna "Emissão" para Date:
mt$Emissao <- data.frame(as.Date(mt$Emissao, "%d/%m/%Y %H:%M:%S"))
# Formatar data para mostrar apenas o ano:
mt$Emissao <- format(mt$Emissao, format = "%m-%Y")
# Cria planilha  MT
write.csv(mt, file ="SisfloraMT_2012_2017.csv")
setwd("..")
# Fusiona todas as planilhas mt e pa em uma única
sisflora <- rbind(mt, pa)
# Considerar apenas as movimentações cujas guias têm os valores "Recebido", "RECEBIDO" e "RECEBIDO_VENCIDO".
sisflora <- sisflora[(sisflora$Status.Guia=="Recebido" |
sisflora$Status.Guia=="RECEBIDO" |
sisflora$Status.Guia== "RECEBIDO_VENCIDO"),]
# Elimina a coluna Status.Guia
sisflora <- select(sisflora, -Status.Guia)
# Cria arquivo Sisflora_2012_2017_Original, antes de eliminar as movimentações que não são intraestaduais
write.csv(sisflora, file ="Sisflora_2012_2017_Original.csv")
# Elimina as planilhas intermediárias
rm(mt, pa)
# Retira as exportações
sisflora <- sisflora[!(sisflora$Exportacao=="Sim" |
sisflora$Exportacao=="EXPORTACAO"),]
# Elimina a coluna Exportação e cria a coluna País.Destino com valores "Brasil",
# já que as exportações virão do DOF.
sisflora <- as.data.table(mutate(sisflora,
Pais.Destino = "Brasil",
Exportacao = NULL))
View(sisflora)
# Troca os valores nulos na coluna "Cadastro.Destino" por "Consumidor Final"
sisflora$Cadastro.Destino[is.na(sisflora$Cadastro.Destino)] <- "Consumidor.Final"
sisflora$Cadastro.Destino[sisflora$Cadastro.Destino != "Consumidor.Final"] <- "Sisflora.Outros"
View(sisflora)
View(sisflora)
# Agrega a soma do volume total e do preço total conforme as colunas escolhidas
sisflora <- sisflora[, .(sum(Volume.Total), sum(Preco.Total)),
by = .(Tipo.de.Guia,
Tipo.de.Origem,
UF.Origem,
Municipio.Origem,
Cadastro.Destino,
Pais.Destino,
UF.Destino,
Municipio.Destino,
Emissao,
Especie,
Produto,
Unidade)]
# Renomeia as colunas V1 e V2
sisflora <- rename(sisflora,
"Volume.Total" = "V1",
"Preco.Total" = "V2")
# Salva arquivo
write.csv(sisflora, file ="Sisflora_2012_2017.csv")
getwd()
setwd("./DOF_Mensal_abr2018")
# Lê as planilhas como data.table() e as fusiona mantendo as seguintes colunas:
lista <- list.files(pattern=".dsv")
lista <- lista[grepl("^[DOF]",lista)]
dof <- data.table()
for (i in 1:length(lista)) {
x <- fread(lista[i],
col.names = c("Ano",
"Mes",
"Tipo.de.Origem",
"UF.Origem",
"Municipio.Origem",
"UF.Destino",
"Municipio.Destino",
"Pais.Destino",
"Tipo.de.Guia",
"Produto",
"Especie",
"Unidade",
"Volume.Total",
"Preco.Total",
"DOFs.Total"),
encoding = "Latin-1",
sep = ";",
dec = ",")
dof <- rbind(dof, x)
}
rm (x, i, lista)
# Elimina a colunas DOFs.Total
dof <- select(dof, -DOFs.Total)
# Grava .csv
write.csv(dof, "Dof 2012 a 2017_Original.csv")
# Cria a coluna Emissão após fusionar ano e mes
dof <- as.data.table(mutate(dof, Emissao = paste(dof$Mes, dof$Ano, sep = "-")))
# Elimina a colunas Ano e Mes
dof <- select(dof, -Ano, -Mes)
# Converte a classe da coluna "Emissão" para Data. Para que o R converta um caracer em data, ele precisa ter o dia, mes e ano.
# Dessa forma, a função paste0 foi utilizada para inserir um 01 no início para todos os valores de data vindos do DOF.
dof$Emissao <- as.Date(paste0("01","-", dof$Emissao),"%d-%m-%Y")
# Formatar data para mostrar apenas o mes e o ano:
dof$Emissao <- format(dof$Emissao, format = "%m-%Y")
dof$Tipo.de.Guia[dof$Tipo.de.Guia=="DOFCF"] <- "DOF.Isento.de.CTF"
dof$Tipo.de.Guia[dof$Tipo.de.Guia=="DOFEWS"] <- "Guia.Estadual"
dof$Tipo.de.Guia[dof$Tipo.de.Guia=="DOFEXP"] <- "DOF.Exportacao"
dof$Tipo.de.Guia[dof$Tipo.de.Guia=="DOFIMP"] <- "DOF.Importacao"
dof$Tipo.de.Guia[dof$Tipo.de.Guia=="DOFEXP"] <- "DOF.Exportacao"
## Troca os valores da coluna Tipo.de.Origem conforme as seguintes instruções:
dof$Tipo.de.Origem <- sub("^PATIO(.*)", "Patio",dof$Tipo.de.Origem)                     # substitui tudo que começa com PATIO por Patio
dof$Tipo.de.Origem <- sub("^DI(.*)", "Declaracao.de.Importacao", dof$Tipo.de.Origem)    # substitui tudo que começa com DI por Declaracao.de.Importacao
# Harmoniza nomes para minusculo e troca espaços vazios por "."
dof$Tipo.de.Origem[dof$Tipo.de.Origem == "SALDONAOEXPORTADO"] <- "Saldo.Nao.Exportado"
dof$Tipo.de.Origem[dof$Tipo.de.Origem == "Sistema Estadual"] <- "Sistema.Estadual"
dof$Tipo.de.Origem[dof$Tipo.de.Origem == "Corte de Árvores Isoladas"] <- "Corte.de.Arvores.Isoladas"
dof$Tipo.de.Origem[dof$Tipo.de.Origem == "Uso Alternativo do Solo"] <- "Uso.Alternativo.do.Solo"
dof$Tipo.de.Origem[dof$Tipo.de.Origem == "Floresta Plantada"] <- "Floresta.Plantada"
dof$Tipo.de.Origem[dof$Tipo.de.Origem == "Autorização de Supressão de Vegetação"] <- "Autorizacao.de.Supressao.de.Vegetacao"
# Reduzir o nome de resíduos:
dof$Produto[dof$Produto == "Resíduo da Indústria Madeireira para Fins de Aproveitamento Industrial"] <- "Residuo.para.Aproveitamento.Industrial"
dof$Produto[dof$Produto == "Resíduo da Indústria Madeireira para Fins Energéticos"] <- "Residuo.para.Fins.Energeticos"
# Troca os valores nulos na coluna País.Destino por "Brasil"
dof$Pais.Destino[dof$Pais.Destino==""] <- "Brasil"
# Adiciona a coluna Cadastro.Destino com valores "DOF.Outros"
dof$Cadastro.Destino <- "DOF.Outros"
# Retira as movimentações intra e interestaduais do MT e PA que tenham o Brasil como País de Destino
# Dessa forma, para as movimentações com origem no MT ou no PA, o DOF vai fornecer apenas
# as movimentações que tem países estrangeiros como destinatários. As movimentações brasileiras
# com origem nesses estados virão do Sisflora MT e PA
dof <- dof[!((dof$UF.Origem=="MT" & dof$Pais.Destino=="Brasil") |
(dof$UF.Origem=="PA" & dof$Pais.Destino=="Brasil")),]
# Troca os valores "Outros" na coluna "Cadastro.Destino" por "Consumidor Final".
# Considera DOF Exportação ou Guias Estaduais com países estrangeiros como destinatários.
dof$Cadastro.Destino[dof$Tipo.de.Guia == "DOF.Isento.de.CTF"] <- "Consumidor.Final"
dof$Cadastro.Destino[dof$Tipo.de.Guia == "DOF.Exportacao"] <- "Consumidor.Final"
dof$Cadastro.Destino[(dof$Tipo.de.Guia == "Guia.Estadual" &
dof$Pais.Destino != "Brasil")] <- "Consumidor.Final"
# Agrega a soma do volume total e do preço total conforme as colunas escolhidas
dof <- dof[, .(sum(Volume.Total), sum(Preco.Total)),
by = .(Tipo.de.Guia,
Tipo.de.Origem,
UF.Origem,
Municipio.Origem,
Cadastro.Destino,
Pais.Destino,
UF.Destino,
Municipio.Destino,
Emissao,
Especie,
Produto,
Unidade)]
# Renomeia as colunas V1 e V2
dof <- rename(dof,
"Volume.Total" = "V1",
"Preco.Total" = "V2")
# Cria o arquivo .csv da planilha DOF
write.csv(dof, file ="Dof 2012 a 2017.csv")
# Muda o diretório de trabalho
setwd("..")
# Fusiona sisflora com DOF, criando a planilha "sisdof"
sisdof <- rbind(sisflora, dof)
rm(dof, sisflora)
write.csv(sisdof, file = "Movimentacao Geral 2012 a 2017_Original.csv")
# Todas para maiúscula
sisdof$Municipio.Origem <- toupper(sisdof$Municipio.Origem)
# Elimina os acentos ortográficos
sisdof$Municipio.Origem <- stri_trans_general(sisdof$Municipio.Origem, "Latin-ASCII")
# Troca espaços por "."
sisdof$Municipio.Origem <- gsub("\\s+", ".", sisdof$Municipio.Origem)
# Deletar "." no final, se houver
# grep("\\.$", sisdof$Municipio.Origem)   #Testa se há municípios com "." no final, caso positivo executar o comando abaixo:
sisdof$Municipio.Origem <- gsub("\\.$", "", sisdof$Municipio.Origem)
