Wie für einzelne Wörter in R zu suchen

Wenn Sie die Arbeit mit Text, oft kann man Probleme lösen, wenn Sie in der Lage sind Wörter oder Muster innerhalb Text zu finden. R macht dies einfach zu tun. Stellen Sie sich vor Sie haben eine Liste der Staaten in den Vereinigten Staaten, und Sie wollen herausfinden, welche dieser Staaten das Wort enthält Neu.

Um dieses Problem zu untersuchen, können Sie den eingebauten in Dataset states.names, die enthält - Sie ahnen es - die Namen der Staaten der Vereinigten Staaten:

> Kopf (state.names) [1] "Alabama" "Alaska" "Arizona" [4] "Arkansas" "California" "Colorado"

Grob gesagt, können Sie Substrings in Text auf zwei Arten finden:

  • Nach Position: Zum Beispiel können Sie R sagen drei Buchstaben an Position 5 starten zu bekommen.

  • Mit dem Muster: Zum Beispiel können Sie R sagen Substrings zu erhalten, die ein bestimmtes Wort oder Muster entsprechen.

    Ein Muster ist ein bisschen wie eine Wildcard. In einigen Kartenspielen, können Sie die Joker-Karte verwenden eine andere Karte zu vertreten. In ähnlicher Weise ein Muster in R können Wörter oder bestimmte Symbole mit speziellen Bedeutungen enthalten.

Suchen nach Position in R

Wenn Sie die genaue Position eines Subtext in einem Textelement kennen, verwenden Sie die substr () Funktion den Wert zurückzukehren. So extrahieren Sie den Subtext, die an der dritten Position startet und stoppt an der sechsten Position state.name, Verwenden Sie die folgenden Schritte aus:

> Kopf (substr (state.name, start = 3, Stop = 6)) [1] "ABAM" "Aska" "izon" "kans" "LIFO" "Lora"

Suche nach Muster in R

Für Strings, können Sie mit dem grep () Funktion, die zwei wesentliche Argumente übernimmt:

  • Muster: Das Muster wollen Sie zu finden.

  • x: Der Charakter Vektor Sie suchen möchten.

Angenommen, Sie alle Zustände finden wollen, die das Muster enthalten Neu. Mach es so:

> Grep ( "Neu", state.name) [1] 29 30 31 32

Das Ergebnis von grep () ist ein numerischer Vektor mit den Positionen von jedem der Elemente, die das Anpassungsmuster enthalten. Mit anderen Worten, das 29. Element state.name enthält das Wort Neu.

> State.name [29] New Hampshire

Puh, das hat geklappt! Aber der Eingabe in die Position jedes passende Text wird eine Menge Arbeit zu sein. Glücklicherweise können Sie die Ergebnisse verwenden grep () direkt von der ursprünglichen Vektor der Teilmenge:

> State.name [grep ( "Neu", state.name)] [1] "New Hampshire" "New Jersey" [3] "New Mexico" "New York"

Das grep () Funktion Groß- und Kleinschreibung - es passt nur Text im gleichen Fall (groß oder klein) als Suchmuster. Wenn Sie nach dem Muster suchen "neu"Klein geschrieben, sind Ihre Suchergebnisse leer:

> State.name [grep ( "neu", state.name)] Zeichen (0)

Menü