关于sqldf包/ regexp函数

时间:2015-10-08 21:25:42

标签: r sqldf

我正在使用sqldf包和sql分析由分类模型生成的一个表。

但是当我使用代码时:

table<-sqldf("
SELECT a,
b, 
c, 
d, 
e, 
f,
CASE WHEN (REGEXP_LIKE(t, '\b(2nd time|3rd time|4th time)\b')) = TRUE
THEN 1 ELSE 0 END AS UPSET_NOT_LIKE,
regexp_extract(t, '\b(2nd time|3rd time|4th time)\b')) as Word
FROM cls                  
")

看起来sqldf包没有regexp_like和regexp_extract函数。

我可以使用任何sql-advanced软件包进行查询吗?

1 个答案:

答案 0 :(得分:3)

sqldf适用于SQLite,h2,mysql和postgresql后端。

默认为SQLite,它不支持这些功能。如果SQLite是在支持下编译的,SQLite确实支持regexp关键字,但我不认为RSQLite包中的驱动程序已经这样做了。

如果您将postgreSQL数据库后端用于~,那么regexp_matches运算符可用于进行正则表达式匹配,cls可用于提取匹配项。

有关使用postgreSQL后端和sqldf的信息,请参阅sqldf home page上的FAQ#12。

有关postgreSQL中正则表达式匹配的信息,请参阅here

将来请在您的问题中提供完整的最小自包含可重复的示例,在这种情况下,还意味着提供dput(head(cls))行的示例,例如RegistrationViewController