Home/Selected work/BikeRentalData

R package · Data engineering · 2026

BikeRentalData

One interface for discovering, downloading, and standardizing official trip files from four major U.S. bike-share systems.

RPackage developmentData pipelinesGeospatial
Systems4 bike-share networks
OutputCommon trip schema
EnrichmentCalendar + weather
InterfaceInstallable R package

Four systems, four moving targets.

Public bike-share data is abundant, but every operator publishes different archives, filenames, columns, encodings, and historical formats.

BikeRentalData moves that work into a package. A user specifies a system and date range; the package finds available archives, downloads them, reads legacy and current formats, and returns a documented common schema.

Why I built it

To turn one-off bike-share cleaning code into infrastructure that can support repeat analyses across cities and time.

One schema across four cities.

Currently supported systems
System IDNetworkMetro areaWeather station
capitalCapital BikeshareWashington, D.C.DCA
citibikeCiti BikeNew York CityLGA
divvyDivvyChicagoORD
baywheelsBay WheelsSan Francisco Bay AreaSFO

The standardized output includes system and city, ride and bike identifiers, timestamps, duration, station identifiers and names, coordinates, and a consistent member/casual rider field. Missing source fields are returned explicitly as NA.

Discover, download, standardize, enrich.

01List official archives
02Download requested dates
03Map to common fields
04Add context
01

Archive adapters

System-specific discovery functions isolate changing provider URLs and naming conventions.

02

Schema contracts

Loaders normalize timestamps, rider labels, station fields, coordinates, and trip duration.

03

Calendar features

Add local hour, weekday, weekend, season, and observed federal holidays.

04

Weather and infrastructure

Join daily ASOS observations and optionally calculate station-area bike-infrastructure exposure.

A reusable data product, not a single finding.

Common access1 API

The same functions work across all supported systems

Rider labels2 levels

Member and casual categories standardized across sources

Spatial buffersFlexible

Station exposure can be cached at user-selected distances

The package’s main result is reduced analytical friction: multi-city trip data can be assembled in one call, source-specific quirks are handled in tested functions, and every returned field has a data-dictionary definition.

Standardization cannot create missing data.

Source quality still varies.

Legacy files may omit ride IDs, bike types, or coordinates. Weather is a daily metro-airport measure rather than route-level conditions, and holiday support does not yet cover local events, school calendars, strikes, or service disruptions. The package exposes these gaps instead of filling them with assumptions.

Next case studyStatistical Model Suggester