Ich habe einen regulären Ausdruck, der meine Daten mit grepl
abgleichen kann, aber ich kann nicht herausfinden, wie die darin enthaltenen Unterausdrücke in neue Spalten extrahiert werden .Extrahieren von Unterausdrücken aus einem Datenrahmen von Zeichenfolgen mit regulären Ausdrücken
Dies kehrt die Test-String als foo
, ohne dass einer der Teilausdrücke:
entryPattern <- "(\\d+)\\s+([[:lower:][:blank:]-]*[A-Z][[:alpha:][:blank:]-]+[A-Z]\\s[[:alpha:][:blank:]]+)\\s+([A-Z]{3})\\s+(\\d{4})\\s+(\\d\\d\\-\\d\\d)\\s+([[:print:][:blank:]]+)\\s+(\\d*\\:?\\d+\\.\\d+)"
test <- "101 POULET Laure FRA 1992 25-29 E. M. S. Bron Natation 26.00"
m <- regexpr(entryPattern, test)
foo <- regmatches(test, m)
In meinem realen Anwendungsfall, ich bin auf vielen Saiten ähnlich wie test
wirken. Ich kann die korrekt formatierten finden, daher denke ich, dass das Muster korrekt ist.
rows$isMatch <- grepl(entryPattern, rows$text)
Was zu tun ‚Hoffnung, M ist die Unterausdrücke als neue Spalten in den Reihen Datenrahmen hinzufügen (d rows$rank
, rows$name
, rows$country
, etc.). Vielen Dank im Voraus für eine Beratung.