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.
install.packages("railtrails")
Here is how to load the data:
railtrails <- railtrails::railtrails
railtrails
## # A tibble: 3,846 x 11
## state name distance surface category mean_review description n_reviews
## <chr> <chr> <dbl> <chr> <chr> <int> <chr> <chr>
## 1 AK Chas… 14.0 Dirt, … Rail-Tr… 4 "\r\n … 1 Reviews
## 2 AK Tony… 11.0 Asphalt Rail-Tr… 5 "The Tony … 5 Reviews
## 3 AK Bird… 13.0 Asphalt Rail-Tr… 5 "\r\n … 3 Reviews
## 4 AK Camp… 7.50 Asphal… Greenwa… 5 "\r\n … 3 Reviews
## 5 AK Goos… 1.50 Asphal… Greenwa… 0 "\r\n … 0 Reviews
## 6 AK Home… 4.00 Asphalt Greenwa… 5 "On the so… 1 Reviews
## 7 AK Lani… 3.90 Asphal… Greenwa… 3 "The Lanie… 1 Reviews
## 8 AK Palm… 6.10 Gravel Rail-Tr… 0 "As its na… 0 Reviews
## 9 AK Ship… 2.60 Asphalt Rail-Tr… 4 " \r\nShip… 1 Reviews
## 10 AL Chie… 33.0 Asphalt Rail-Tr… 5 "In northe… 77 Revie…
## # ... with 3,836 more rows, and 3 more variables: raw_reviews <list>,
## # lat <dbl>, lng <dbl>
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
.
You may want to “unnest” the list-column with reviews in the following way:
library(tidyr)
d <- railtrails::railtrails
d <- d %>% unnest(raw_reviews)
d
## # A tibble: 24,413 x 11
## state name distance surface category mean_review description n_reviews
## <chr> <chr> <dbl> <chr> <chr> <int> <chr> <chr>
## 1 AK Chas… 14.0 Dirt, … Rail-Tr… 4 "\r\n … 1 Reviews
## 2 AK Tony… 11.0 Asphalt Rail-Tr… 5 "The Tony … 5 Reviews
## 3 AK Tony… 11.0 Asphalt Rail-Tr… 5 "The Tony … 5 Reviews
## 4 AK Tony… 11.0 Asphalt Rail-Tr… 5 "The Tony … 5 Reviews
## 5 AK Tony… 11.0 Asphalt Rail-Tr… 5 "The Tony … 5 Reviews
## 6 AK Tony… 11.0 Asphalt Rail-Tr… 5 "The Tony … 5 Reviews
## 7 AK Bird… 13.0 Asphalt Rail-Tr… 5 "\r\n … 3 Reviews
## 8 AK Bird… 13.0 Asphalt Rail-Tr… 5 "\r\n … 3 Reviews
## 9 AK Bird… 13.0 Asphalt Rail-Tr… 5 "\r\n … 3 Reviews
## 10 AK Camp… 7.50 Asphal… Greenwa… 5 "\r\n … 3 Reviews
## # ... with 24,403 more rows, and 3 more variables: lat <dbl>, lng <dbl>,
## # raw_reviews <int>
library(dplyr)
library(forcats)
library(stringr)
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")
d
If you like using this package, please consider visiting or even making a donation to the Rails to Trails Conservancy at via https://www.traillink.com/.
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.