educabR and the alternatives
Source:vignettes/educabr-and-the-alternatives.Rmd
educabr-and-the-alternatives.RmdIf you asked around — or asked a chatbot — how to read Brazilian
education microdata in R, you were probably pointed at Base dos Dados or at microdadosBrasil.
Both are real answers, and educabR replaces neither. This
page says what each one covers, with dates and numbers you can check, so
you can pick without trying all three.
Everything below was verified on 2026-09-14 and every claim is checkable from a package’s own metadata or repository.
The three, in one paragraph each
educabR (this package, on CRAN)
downloads straight from the agencies that publish the data — INEP, FNDE,
CAPES and STN — parses what they actually publish (fixed-width
microdata, CSVs with mixed encodings, IDEB spreadsheets whose header is
three rows of title) and returns a tibble with Portuguese column names
kept as the agency writes them. No account, no credentials, no cloud
project.
basedosdados (CRAN, 0.2.3)
is the R client for Base dos Dados, a curated data lake. Its own
description says it lets you “authenticate your project, query our
tables, save data to disk and memory” — it imports
bigrquery, because the tables live in Google BigQuery. That
is its strength and its cost: you get SQL across dozens of Brazilian
sources already harmonised, and you need a Google Cloud project to run a
query. When the question spans education and health
and the labour market, this is the tool that answers it in one
join.
microdadosBrasil (GitHub only, not on
CRAN) reads the classic Brazilian microdata files and handles their
fixed-width dictionaries. It is a well-known package — 174 stars — and
its last commit is from 2019-12-23. Its INEP coverage,
per its own README table, is School Census 1995–2014 and Higher
Education Census 1995–2014; ENEM, SAEB, IDEB and ENADE are not in
it.
Coverage, where the three overlap
INEP datasets, as reported by available_years() in
educabR 1.1.0.9000 against microdadosBrasil’s
own README table:
| dataset | educabR |
microdadosBrasil |
|---|---|---|
School Census (censo_escolar) |
1995–2025, 31 editions | 1995–2014 |
Higher Education Census (censo_superior) |
2009–2024, 16 editions | 1995–2014 |
ENEM (enem) |
1998–2025, 28 editions | — |
SAEB (saeb) |
2011–2023, 7 editions | — |
IDEB (ideb) |
2017–2025, 5 editions | — |
ENADE (enade) |
2004–2023, 19 editions | — |
| CPC / IDD / IGC | 2007–2023 / 2014–2023 / 2007–2023 | — |
| CAPES graduate programmes | 2013–2024 | — |
| ENCCEJA | 2014–2025 | — |
Read the second column honestly: for the Higher Education
Census before 2009, microdadosBrasil covers years
educabR does not. If that is your period, that is your
package — and the fact that it stopped in 2014 does not make the files
it already reads any worse.
For everything published since 2015, though, a package whose last commit predates the pandemic cannot help: there is no Census 2020, no ENEM 2025, no IDEB 2023 in it. That is the gap this package exists to fill.
basedosdados is not in the table on purpose. Its
coverage is whatever Base dos Dados has curated at the moment you ask,
which changes; checking it means querying the lake, and a table printed
here would be stale within months.
A measured example
The question — “IDEB results by municipality, programmatically” — with an empty cache, on 2026-09-14:
library(educabR)
ideb <- get_ideb(
level = "municipio",
stage = "anos_finais",
metric = "indicador",
year = c(2021, 2023)
)| time, cold cache | 9.5 s |
| downloaded | 10.97 MB (one INEP spreadsheet) |
| rows | 86,478 |
| municipalities | 5,569 |
| time, warm cache | 2.1 s |
What came back is already long and typed — one row per municipality, network and edition:
head(ideb, 3)
#> uf_sigla municipio_codigo municipio_nome rede ano indicador valor
#> 1 RO 1100015 Alta Floresta D'Oeste Estadual 2021 IDEB 4.8
#> 2 RO 1100015 Alta Floresta D'Oeste Municipal 2021 IDEB 4.7
#> 3 RO 1100015 Alta Floresta D'Oeste Pública 2021 IDEB 4.8The 11 MB is INEP’s own file: IDEB is published as an
.xlsx whose first rows are the title and the notes, with
the indicator, the target and the components side by side in wide form.
The work the package does is that reshaping — not the download, which
you could do yourself in one line.
Which one to use
- The question is about education, you want the data
in R and you would rather not set up anything:
educabR. - The question crosses domains — education with
income, health or employment — and you are comfortable with SQL and a
Google Cloud project:
basedosdados. - You need the pre-2015 microdata that the older
package already maps, especially the Higher Education Census before
2009:
microdadosBrasil. - You are mapping results:
educabRwithgeobr— see Mapping education indicators with geobr.
What educabR does not do
- It does not host or mirror the data. Every file comes from the agency at call time; when INEP changes a layout, the package is what has to change.
- It does not harmonise across sources. Column names stay as the
agency writes them, in Portuguese — joining ENEM to the School Census is
your call, and the dictionaries in
dictionaries/are there to help. - It does not cover what the agencies do not publish openly, and it does not reach data that requires a formal request to INEP.