# Se necessário, instale o pacote readxl
#install.packages("readxl")
library(readxl)
Consolidação de arquivos
Tutorial Transformação Digital nº14
Este documento R Markdown demonstra como ler, combinar e salvar arquivos de diferentes formatos (CSV, TXT, XLS e XLSX) contidos na pasta Planilhas. Combina todos os data frames obtidos em um único data frame utilizando do.call com rbin. Salva o data frame consolidado em um arquivo .csv.
1 Preparação
Carregue o pacote readxl para manipulação de arquivos Excel. Caso ainda não o tenha instalado, realize a instalação.
Este pacote possibilita a visualização e manipulação de arquivos Excel.
2 Definindo a Pasta de Trabalho
Aqui, especificamos a pasta chamada Planilhas como o local onde todos os arquivos estão armazenados. É importante garantir que essa pasta esteja no mesmo diretório de trabalho do arquivo em R que está criando e do R Projet, ou definir o caminho completo para o diretório onde os arquivos estão localizados.
# Define a pasta onde os arquivos estão localizados
pasta <- "Planilhas"3 Listando os Arquivos
Lista todos os arquivos com as extensões que for utilizar
# Lista todos os arquivos com as extensões CSV, TXT, XLS e XLSX
arquivos <- list.files(path = pasta, pattern = "\\.(csv|txt|xls|xlsx)$", full.names = TRUE)- list.files() é usada para listar todos os arquivos da pasta.
- pattern = “.(csv|txt|xls|xlsx)$” especifica que estamos interessados apenas nos arquivos que terminam em .csv, .txt, .xls ou .xlsx.
- full.names = TRUE retorna o caminho completo dos arquivos, o que é útil para evitar problemas ao ler os arquivos em diferentes diretórios.
4 Função para Ler Arquivos
Função para ler os arquivos de acordo com a extensão.
# Função para ler os arquivos de acordo com a extensão
ler_arquivo <- function(arquivo) {
ext <- tools::file_ext(arquivo)
if (ext == "csv") {
df <- read.csv(arquivo, stringsAsFactors = FALSE)
} else if (ext == "txt") {
# Considerando que o arquivo TXT utiliza tabulação como separador
df <- read.table(arquivo, header = TRUE, sep = "\t", stringsAsFactors = FALSE)
} else if (ext %in% c("xls", "xlsx")) {
df <- read_excel(arquivo)
# Converter para data.frame, se necessário
df <- as.data.frame(df)
} else {
stop("Formato não suportado: ", ext)
}
return(df)
}Explicação detalhada: - tools::file_ext(arquivo) Obtém a extensão do arquivo para identificar o tipo de arquivo. O pacote tools é nativo no R, portanto, não é necessário instalá-lo.
read.csv() para arquivos .csv stringsAsFactors = FALSE: Garante que as colunas de texto sejam lidas como caracteres e não como fatores. Lê o arquivo CSV normalmente com vírgula como separador.
read.table() para arquivos .txt header = TRUE: Considera a primeira linha como cabeçalho (nomes das colunas). sep = “: Define a tabulação como separador de coluna, típico de arquivos TXT exportados de planilhas. Ideal para arquivos TXT com estrutura tabular.
read_excel() para arquivos .xls e .xlsx Utiliza o pacote readxl, que é capaz de ler tanto .xls quanto .xlsx. Como o read_excel() retorna um tibble, é convertido para um data.frame para manter a consistência no R base com as.data.frame().
stop() Se a extensão não for uma das esperadas, o script para a execução com um erro informativo.
5 Lendo os Arquivos e Armazenando na Lista
Lê cada arquivo e armazena os data frames em uma lista
# Lê cada arquivo e armazena os data frames em uma lista
lista_dados <- lapply(arquivos, ler_arquivo)- lapply() aplica a função ler_arquivo para cada item na lista de arquivos. O resultado é uma lista onde cada elemento é um data frame correspondente ao conteúdo de um arquivo.
6 Combinando os Data Frames
Combina todos os data frames em um único data frame
# Combina todos os data frames em um único data frame
consolidado <- do.call(rbind, lista_dados)do.call(rbind, lista_dados) combina todos os data frames armazenados na lista em um único data frame.
rbind() empilha as linhas, ideal para arquivos que têm a mesma estrutura de colunas.
Se os arquivos tiverem colunas diferentes, o R preencherá com NA onde as colunas não coincidirem.
7 Salva o data frame combinado em um novo arquivo CSV
Salva o data frame combinado em um novo arquivo CSV
# Salva o data frame combinado em um novo arquivo CSV
write.csv(consolidado, file = "consolidado.csv", row.names = FALSE)- write.csv() salva o data frame combinado em um novo arquivo chamado consolidado.csv.
- row.names = FALSE evita que o R salve números de linha como uma coluna adicional no CSV final. .
8 Considerações e Limitações
É importante garantir que todos os arquivos tenham a mesma estrutura de colunas, caso contrário, o resultado pode conter colunas com NA. Se algum arquivo estiver corrompido ou com formatação inesperada, a execução do script será interrompida. Para maior robustez, é possível adicionar verificações de qualidade nos dados antes de combiná-los.
9 Conclusão
Este script é útil para consolidar dados de diversas fontes e formatos em um único arquivo CSV, facilitando análises futuras. A abordagem modularizada através de uma função para leitura de arquivos permite fácil expansão para outros formatos no futuro.