匹配sqldf r中的下划线字符

时间:2015-10-06 14:18:54

标签: r sqldf

我有一个数据框df,

df = data.frame(name=c("jean", "lucie", "marie", "alain", "dupont", "stephane"),
  address=c("A3_Lyon" ,"paris_A1", "Paris_A2_Test", "Par1", "Paris_A2de2_Lyon",   'Lille_Aide_'))

我想选择包含 A2 的地址,我如何使用sqldf执行此操作?这条指令给我错误的结果:

sqldf("select * from df where address like '%_A2_%'")
##     name          address
## 1  marie    Paris_A2_Test
## 2 dupont Paris_A2de2_Lyon

对我来说,正确的答案是:

##     name          address
## 1  marie    Paris_A2_Test

我该怎么做

1 个答案:

答案 0 :(得分:3)

对于大多数SQL方言,_匹配LIKE语句中的任何给定单个字符。使用sqldf(SQLite)的默认SQL驱动程序,您可以将 sqldf("select * from df where address glob '*_A2_*'") sqldf("select * from df where address like '%\\_A2\\_%' ESCAPE '\\'") 替换为使用*和?的类似语句。分别代替%和_或尝试指定转义:

{{1}}