Olá.
Tenho uma unica planilha em Excel com várias pastas, todas com variáveis similares. Como faço para empilhar todas essas pastas num único dataframe?
Pensei em usar o map_dfr, mas não sei como indexar as “sheets”.
Obrigado
Olá.
Tenho uma unica planilha em Excel com várias pastas, todas com variáveis similares. Como faço para empilhar todas essas pastas num único dataframe?
Pensei em usar o map_dfr, mas não sei como indexar as “sheets”.
Obrigado
Olá!
Você sabe os nomes de cada sheet (pastas)? Caso você saiba disso, você pode fazer algo como:
sheets <- c("sheet_a", "sheet_b")
purrr::map_dfr(
.x = sheets,
.f = ~ readxl::read_xlsx("planilha.xlsx", sheet = .x)
)
Onde o vetor sheets
possui os nomes das pastas.
Funcionou perfeitamente.
Obrigado Douglas.
Deu certo para duas pastas. Quando fui tentar para mais, deu erro.
`sheets ← c(1:3)
c2 ← purrr::map_dfr(
.x = sheets,
.f = ~ readxl::read_xlsx(“data_raw/geralNN.xlsx”, sheet = .x)
)
Error in dplyr::bind_rows()
:
! Can’t combine ..1$Neg_Ano5
and ..3$Neg_Ano5
.
Opa, então. Isso normalmente ocorre quando o nome das colunas que você quer juntar não são iguais ou tem tipos diferentes (por ex., a coluna tem o mesmo nome, mas uma é de data e outra de inteiros).
Se você puder reproduzir esse erro novamente e usar rlang::last_error()
e depois rlang::last_trace()
, e mandar aqui o erro para podermos entender melhor, por favor.
Abs
Olá Douglas.
Na verdade, o código está certo. O erro é porque as outras planilhas tem tipo de variáveis diferentes, por isso não conseguiu ler. Precisar ajustar isso antes de empilhar.
Mais um vez, muito obrigado.