#nyc_path <- system.file("extdata", "google_transit_nyc_subway.zip", package = "tidytransit")
nyc <- gtfs

# you can use initial walk times to different stops in walking distance (arbitrary example values)
stop_ids_harlem_st <- c("301", "301N", "301S")
stop_ids_155_st <- c("A11", "A11N", "A11S", "D12", "D12N", "D12S")
walk_times <- data.frame(stop_id = c(stop_ids_harlem_st, stop_ids_155_st), 
                         walk_time = c(rep(600, 3), rep(410, 6)), stringsAsFactors = F)

# Use journeys departing after 7 AM with arrival time before 11 AM on 26th of June
stop_times <- filter_stop_times(nyc, "2018-06-26", 7*3600, 9*3600)

# calculate all journeys departing from Harlem St or 155 St between 7:00 and 7:30
rptr <- raptor(stop_times, nyc$transfers, walk_times$stop_id, departure_time_range = 1800,
               keep = "all")

# add walk times to travel times
rptr <- left_join(rptr, walk_times, by=c("journey_departure_stop_id" = "stop_id"))
rptr$travel_time_incl_walk <- rptr$travel_time + rptr$walk_time

# get minimal travel times (with walk times) for all stop_ids 
shortest_travel_times <- setDT(rptr)[order(travel_time_incl_walk)][, .SD[1], by = "stop_id"]
hist(shortest_travel_times$travel_time, breaks = 360)
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKYGBge3J9CiNueWNfcGF0aCA8LSBzeXN0ZW0uZmlsZSgiZXh0ZGF0YSIsICJnb29nbGVfdHJhbnNpdF9ueWNfc3Vid2F5LnppcCIsIHBhY2thZ2UgPSAidGlkeXRyYW5zaXQiKQpueWMgPC0gZ3RmcwoKIyB5b3UgY2FuIHVzZSBpbml0aWFsIHdhbGsgdGltZXMgdG8gZGlmZmVyZW50IHN0b3BzIGluIHdhbGtpbmcgZGlzdGFuY2UgKGFyYml0cmFyeSBleGFtcGxlIHZhbHVlcykKc3RvcF9pZHNfaGFybGVtX3N0IDwtIGMoIjMwMSIsICIzMDFOIiwgIjMwMVMiKQpzdG9wX2lkc18xNTVfc3QgPC0gYygiQTExIiwgIkExMU4iLCAiQTExUyIsICJEMTIiLCAiRDEyTiIsICJEMTJTIikKd2Fsa190aW1lcyA8LSBkYXRhLmZyYW1lKHN0b3BfaWQgPSBjKHN0b3BfaWRzX2hhcmxlbV9zdCwgc3RvcF9pZHNfMTU1X3N0KSwgCiAgICAgICAgICAgICAgICAgICAgICAgICB3YWxrX3RpbWUgPSBjKHJlcCg2MDAsIDMpLCByZXAoNDEwLCA2KSksIHN0cmluZ3NBc0ZhY3RvcnMgPSBGKQoKIyBVc2Ugam91cm5leXMgZGVwYXJ0aW5nIGFmdGVyIDcgQU0gd2l0aCBhcnJpdmFsIHRpbWUgYmVmb3JlIDExIEFNIG9uIDI2dGggb2YgSnVuZQpzdG9wX3RpbWVzIDwtIGZpbHRlcl9zdG9wX3RpbWVzKG55YywgIjIwMTgtMDYtMjYiLCA3KjM2MDAsIDkqMzYwMCkKCiMgY2FsY3VsYXRlIGFsbCBqb3VybmV5cyBkZXBhcnRpbmcgZnJvbSBIYXJsZW0gU3Qgb3IgMTU1IFN0IGJldHdlZW4gNzowMCBhbmQgNzozMApycHRyIDwtIHJhcHRvcihzdG9wX3RpbWVzLCBueWMkdHJhbnNmZXJzLCB3YWxrX3RpbWVzJHN0b3BfaWQsIGRlcGFydHVyZV90aW1lX3JhbmdlID0gMTgwMCwKICAgICAgICAgICAgICAga2VlcCA9ICJhbGwiKQoKIyBhZGQgd2FsayB0aW1lcyB0byB0cmF2ZWwgdGltZXMKcnB0ciA8LSBsZWZ0X2pvaW4ocnB0ciwgd2Fsa190aW1lcywgYnk9Yygiam91cm5leV9kZXBhcnR1cmVfc3RvcF9pZCIgPSAic3RvcF9pZCIpKQpycHRyJHRyYXZlbF90aW1lX2luY2xfd2FsayA8LSBycHRyJHRyYXZlbF90aW1lICsgcnB0ciR3YWxrX3RpbWUKCiMgZ2V0IG1pbmltYWwgdHJhdmVsIHRpbWVzICh3aXRoIHdhbGsgdGltZXMpIGZvciBhbGwgc3RvcF9pZHMgCnNob3J0ZXN0X3RyYXZlbF90aW1lcyA8LSBzZXREVChycHRyKVtvcmRlcih0cmF2ZWxfdGltZV9pbmNsX3dhbGspXVssIC5TRFsxXSwgYnkgPSAic3RvcF9pZCJdCmhpc3Qoc2hvcnRlc3RfdHJhdmVsX3RpbWVzJHRyYXZlbF90aW1lLCBicmVha3MgPSAzNjApCgpgYGAKCg==