Wenn ich eine Datenbank mit dplyr abfrage, muss ich oft Strings suchen. Normalerweise verwende ich %like%
, die ausreichend funktioniert. Manchmal benutze ich lieber reguläre Ausdrücke. Wenn ich rein SQL schrieb, würde ich so etwas wie schreiben:Gibt es eine Möglichkeit, REGEXP innerhalb einer Datenbankabfrage zu verwenden?
select pidm, jobtitle from people
where jobtitle REGEXP "^Athl.*train"
Aber natürlich würde Ich mag tidyverse-Stil R schreiben:
foo <- tbl(my_database,"people") %>%
filter(jobtitle %regexp% "^Athl.*train") %>%
select(pidm, jobtitle)
stringr::str_detect()
Verwendung nicht funktioniert in SQL. Gibt es eine Möglichkeit, weiterhin Code im Stil von "Reverse-style" zu schreiben, aber die Suche nach Stil immer wieder zu ändern?
Wenn es darauf ankommt, läuft meine Datenbank auf MySQL.
Hm. Ich kann nicht scheinen, dass dies mit meiner Datenbank zu arbeiten - ich bekomme ähnliche Fehler, wenn ich versuche, vergleichbaren Code oder sogar mit Ihrem Beispiel gegen meinen Server zu schreiben (ich bekomme einen Fehler: Fehler in stri_detect_regex (string, pattern, opts_regex = opts (pattern)): Objekt 'Herkunft' nicht gefunden – crazybilly
Ich bin ein Idiot.Verwandte das gleiche Problem.Ich lese eine derzeit offene PR als eine engagierte, wenn es [nicht] ist (https://github.com/tidyverse/dbplyr/pull/35). Sieht aus wie 'stringr' wird immer noch nicht unterstützt mit' dplyr' unter der aktuellen Version. (Obwohl basierend auf dieser PR sieht es aus, als könnte es nah sein.) Sorry! Gonna Antwort löschen, da es irrelevant ist. – wtmatthias