我的数据框如下所示
> df[1:10,c("Uri","Latency")]
Uri
1 /filters/test_group_1/test_datasource%20with%20space/test_application_alias_100
2 /applications?includeDashboards&includeMappings
3 /applications/test_application_alias_1
4 /applications?includeDashboards&includeMappings
5 /applications/test_application_alias_200
6 /applications/test_application_alias_100
7 /filters/00000000-0000-0000-0000-000000000001/test_datasource%20with%20space/test_application_alias_0
8 /dashboards?dashboard=test_dashboard_alias_9&includeMappings
9 /filters/00000000-0000-0000-0000-000000000001/test_dataSource_1/test_application_alias_100
10 /filters/00000000-0000-0000-0000-000000000001/test_datasource%20with%20space/test_application_alias_100
Latency
1 296
2 1388
3 58
4 833
5 239
6 60
7 217
8 36
9 86
10 112
我想只选择那些以/ applications开头的行。请注意,Uri的其余部分可能是任何东西,并不重要。
我可以通过以下方式获得完全匹配,
df[which(df$Uri == "/applications"),c("Uri","Latency")]
但是,因为,我正在寻找一个子字符串,我明白,我可能需要做一些通配符处理,这在SQL中看起来像。
select * from <table_name> where Uri like '%/applications%'
我怎样才能在R
中做同样的事情答案 0 :(得分:2)
假设df$Uri
是一个字符向量,我会选择:
df[startsWith(df$Uri, "/applications"), ]
答案 1 :(得分:0)
我会使用正则表达式:
df[ grepl( "^\\/applications" , df[, "Uri"] ) , c("Uri","Latency") ]