Use of railtrails


This R data package provides rail information about rail trails from the excellent TrailLink website, sponsored by the Rails-to-Trails Conservancy.


You can install railtrails with the install.packages() function.


Loading the data

Here is how to load the data:

railtrails <- railtrails::railtrails

The latitude and longitude are for the trailhead and are from Google Maps searches of the trail's name (and trail's state). Around 94% of the trails are associated with latitude and longitude information.

See more information about the variables with ?railtrails.

"Unnesting" trail reviews

You may want to "unnest" the list-column with reviews in the following way:

d <- railtrails::railtrails
d <- d %>% unnest(raw_reviews)

Processing category and surface (not run)


d <- d %>% 
    mutate(category = as.factor(category),
           category = fct_recode(category, "Greenway/Non-RT" = "Canal"),
           mean_review = ifelse(mean_review == 0, NA, mean_review))

d <- mutate(d,
             surface_rc = case_when(
                 surface == "Asphalt" ~ "Paved",
                 surface == "Asphalt, Concrete" ~ "Paved",
                 surface == "Concrete" ~ "Paved",
                 surface == "Asphalt, Boardwalk" ~ "Paved",
                 str_detect(surface, "Stone") ~ "Crushed Stone",
                 str_detect(surface, "Ballast") ~ "Crushed Stone",
                 str_detect(surface, "Gravel") ~ "Crushed Stone",
                 TRUE ~ "Other"

d$surface_rc <- as.factor(d$surface_rc)

d$surface_rc <- fct_relevel(d$surface_rc,
                             "Crushed Stone")



If you like using this package, please consider visiting or even making a donation to the Rails to Trails Conservancy at via

Note that these data were last updated 2017-08-14 and so new trails and particularly reviews have likely been added since then. The R files at here can be used to create updated data. Pending the same permissions as indicated by the robots.txt file and terms of service for use of the TrailLink website, I will plan to update this package bi-yearly (this was last updated around 2018-02-2).

Thank you to Bob Rudis for feedback on an earlier version of this package.

Future improvements

I am interested in adding the trailhead location to the data; this can be done fairly easily using the Google Maps API but will take considerable time due to the number of trails. Contributions are welcome. Requests for features can be made on GitHub.

Try the railtrails package in your browser

Any scripts or data that you put into this service are public.

railtrails documentation built on May 2, 2019, 9:15 a.m.