Background & Motivation

🗂️

Fragmented Files

Large projects arrive as dozens of spreadsheets, CSVs, and labelled survey extracts — no single tidy file.

⏱️

Slow & Manual

Analysts spend 40+ minutes on repetitive import clicks — time that should go to modelling and insights.

🔌

No Unified API

Individual tools exist inside the tidyverse, but no single interface loads heterogeneous files in one step.

Introducing bulkreadr Package

A single, vectorised API wrapping readxl, readr, googlesheets4, and haven — making bulk data import fast and reproducible.

📊
Excel & Google Sheets Every sheet in one call
📄
CSV Directories Ingest entire folders in one line
🏷️
SPSS & Stata Labels Preserve variable labels via haven
📋
Data Dictionaries Auto-generate with generate_dictionary()
QC Summaries inspect_na() & fill_missing_values()
# ── Spreadsheets ─────────────────────────
read_excel_workbook(path)
read_excel_files_from_dir(dir_path)
read_gsheets(sheet_id)

# ── Flat files ───────────────────────────
read_csv_files_from_dir(dir_path)

# ── Labelled survey data ──────────────────
read_spss_data(path)
read_stata_data(path)

# ── Quality control ───────────────────────
generate_dictionary(data)
fill_missing_values(data)
inspect_na(data)

Function Architecture

📊 Spreadsheets
read_excel_workbook() read_excel_files_from_dir() read_gsheets()
📄 Flat Files
read_csv_files_from_dir()
🏷️ Labelled
read_spss_data() read_stata_data() generate_dictionary() look_for()
⚙️ Other Utilities pull_out() convert_to_date() fill_missing_values() inspect_na()

Real-World Application

🌍
19 Northern Nigerian States
Multi-wave survey harmonisation across administrative units
Poverty Research Project

Dictionary generator accelerated questionnaire harmonisation across survey rounds
Coding errors that previously surfaced only at analysis stage were eliminated

Installation

bulkreadr is open-source and ready for your research

  • CRAN
install.packages("bulkreadr")
  • Github
devtools::install_github("gbganalyst/bulkreadr")

How to contribute

How to contribute?

You can contribute to the development of this package by:

Hands-on