Como importar várias bases de dados automaticmente

Olá a todos.

Preciso importar um grande número de arquivos xls para o R. Eu criei uma função para automatizar o processo. Vou compartilhar minha solução. Mas acredito que exista algo mais adequado para resolver. Conto com o apoio de vcs.

#Criando uma função para importar vários arquivos xlsx
i=0
datas = seq.Date(from = as_date(“2013-01-01”), as_date(“2019-01-01”), by=“year”)
dt = datas[i+1]
carregarArquivo = function(dt, k){
caminho2 = format(dt, “EstimativaPop/estimativa_%Y_dou.xls” )
lerArquivo = read_excel(caminho2, skip = 2, sheet = 2)
municipios = lerArquivo[c(103,105,117,128,129,135,136),c(k)]
}

Carregando os arquivos

i=0
estAno = carregarArquivo(dt, 5)
for (i in 1:length(datas)) {
dt = datas[i+1]
estAno[i+1] = carregarArquivo(dt, 5)
}

Boa tarde Hidelbrando,

Não sei se entendi exatamente o que tu está querendo fazer, mas tenho uma sugestão que é útil pra mim quando quero fazer a leitura de vários arquivos:

Primeiro a função list files vai trazer todos os caminhos “data/xls/arquivo_exemplo.xls” para dentro do vec nomes.

vec_nomes <- list.files(“data/xls”, full.names = TRUE)

Segundo com a função map tu cria uma lista com todos arquivos.

lista_arquivos <- vec_nomes %>%

purrr::map(readxl::read_excel)

lista_arquivos

elemento 1 – primeiro arquivo

elemento 2 – segundo arquivo

.

.

names(lista_arquivos) <- vec_nomes

Depois tu renomeia cada elemento com os nomes da lista.

2 Curtidas

Olá!

Uma maneira de exportar vários arquivos de uma vez é:

base <-
    list.files(path = "pasta-com-os-arquivos", full.names = TRUE, pattern = ".csv") %>%
    purrr::map(readr::read_csv2) %>%
    dplyr::bind_rows()

Onde no path você coloca o caminho na sua pasta, e pattern são os arquivos que você quer exportar, por exemplo “.csv” ele vai exportar todos os arquivos CSV

3 Curtidas

Obrigado pela dica. Era exatamente o que estava precisando. Vc ainda foi um pouco a mais e no código ainda junto do dois artigo.

Gratidão.

Excelente. Vou tentar essa solução. Sua dica com a da Lalesca, abaixo, mostraram-me algumas possibilidades.

Gratidão.

1 Curtida