我正在使用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高级包可以用来进行查询?
发布于 2015-10-09 12:15:55
sqldf支持SQLite,h2,mysql和postgresql后端。
默认值为SQLite,它不支持这些函数。如果SQLite是在支持下编译的,那么SQLite确实支持regexp关键字,但我认为RSQLite包中的驱动程序没有做到这一点。
如果您使用postgreSQL数据库后端执行sqldf,那么~操作符可用于执行正则表达式匹配,regexp_matches可用于提取匹配项。
有关将postgreSQL后端与sqldf一起使用的信息,请参阅sqldf home page上的FAQ#12。
有关postgreSQL中正则表达式匹配的信息,请参阅here。
将来请在您的问题中提供完整的最小自包含可重现的示例,在这种情况下,这意味着还要提供cls行的样本,例如dput(head(cls))。
https://stackoverflow.com/questions/33026213
复制相似问题