R语言 是否有方法从GTFS中专门筛选出具有特定名称的总线?

nwlqm0z1  于 2023-03-10  发布在  其他
关注(0)|答案(2)|浏览(105)

我正在处理比利时公共交通运营商De Lijn的一些棘手的GTFS,他们不知何故在GTFS上增加了belbus(需求响应巴士)作为每小时一班的巴士路线,使一些服务较差的乡村误导性地看起来像是一个拥有良好公共交通连接的高度可达地区。
在routes.txt中,它们如下所示:
| 路由标识|代理ID|路由简称|路由长名称|路径_描述|路由类型|路由_url|路由_颜色|路由文本颜色|
| - ------|- ------|- ------|- ------|- ------|- ------|- ------|- ------|- ------|
| 小行星61135|1个|四百六十|贝尔布斯·弗拉姆塞·阿登嫩|比利时弗拉芒阿登/比利时弗拉芒阿登|三个||FFFFFF|000099|
我真的很想知道如何过滤route_desc或route_long_name中包含“Belbus”的路线。
一开始我试图在Excel中找到它们,删除它们,并将其保存到routes.txt中,但当然,当我在ArcGIS中计算停止级别频率时,它不起作用,因为我认为它只是查看stop_time. txt,而不会检查Routes.txt中的数据是否丢失。
我还使用gtfstools尝试按route_type过滤它,但不幸的是,它要么将所有公共汽车都排除在外,要么不排除。

uajslkp6

uajslkp61#

我建议您使用stringr包中的str_detect函数过滤行。

library(dplyr)
library(stringr)
df_filtered <- df %>% filter(str_detect(route_long_name, "Belbus") == TRUE)
bttbmeg0

bttbmeg02#

这里是{gtfstools}维护人员。
我会怎么做:

library(gtfstools)

path <- "path_to_gtfs.zip"

gtfs <- read_gtfs(path)

# select route ids whose route_long_name includes "Belbus"
selected_routes <- gtfs$routes[grepl("Belbus", route_long_name)]$route_id

# filter them out of the gtfs object
filtered_gtfs <- filter_by_route_id(gtfs, selected_routes, keep = FALSE)

相关问题