Indholdsfortegnelse:
- Hvis du kender den nøjagtige position af en undertekst inde i et tekstelement, bruger du substr () funktionen til at returnere værdien. At udtrække underteksten, der starter i tredje position og stopper ved den sjette tilstand af staten. navn, brug følgende: >> hoved (undernavn (startnavn, start = 3, stop = 6)) [1] "abam" "aska" "izon" "kans" "lifo" "lora" > Søg efter mønster i R
- mønster
Video: My Horibal Speling 2025
Når du arbejder med tekst, kan du ofte løse problemer, hvis du kan finde ord eller mønstre inde i tekst. R gør det nemt at gøre. Forestil dig, at du har en liste over staterne i USA, og du vil finde ud af, hvilken af disse stater der indeholder ordet Ny.
For at undersøge dette problem kan du bruge de indbyggede datasæt tilstande. navne, som indeholder - du gættede det - navnene på de stater i USA:
Bredt set kan du finde understrengene i tekst på to måder:Ved position:
-
Du kan for eksempel fortælle R om at få tre bogstaver, der starter ved position 5. Ved mønster:
-
Du kan for eksempel fortælle R, at du får substrings der matcher et bestemt ord eller mønster. Et mønster er lidt som et wildcard. I nogle kortspil kan du bruge Joker-kortet til at repræsentere ethvert andet kort. På samme måde kan et mønster i R indeholde ord eller visse symboler med særlige betydninger.
Hvis du kender den nøjagtige position af en undertekst inde i et tekstelement, bruger du substr () funktionen til at returnere værdien. At udtrække underteksten, der starter i tredje position og stopper ved den sjette tilstand af staten. navn, brug følgende: >> hoved (undernavn (startnavn, start = 3, stop = 6)) [1] "abam" "aska" "izon" "kans" "lifo" "lora" > Søg efter mønster i R
For at finde substrings kan du bruge grep () -funktionen, der tager to væsentlige argumenter:
mønster
:Mønsteret du vil finde.
-
x : Karaktervektoren, du vil søge.
-
Antag, at du vil finde alle de stater, der indeholder mønsteret Ny. Gør det sådan: >> grep ("Ny", tilstand.navn) [1] 29 30 31 32 Resultatet af grep () er en numerisk vektor med positionerne for hver af de elementer, der indeholder matchende mønster. Med andre ord, det 29. element i staten. Navnet indeholder ordet Ny. >> state. navn [29] New Hampshire
Phew, det fungerede! Men at skrive i positionen for hver matchende tekst bliver meget arbejde. Heldigvis kan du bruge resultaterne af grep () direkte til at dele den oprindelige vektor: >> tilstand. navn [grep ("New", state. name)] [1] "New Hampshire" "New Jersey" [3] "New Mexico" "New York"
Funktionen grep tekst i samme sag (store eller små bogstaver) som dit søge mønster. Hvis du søger efter mønsteret "nyt" i små bogstaver, er dine søgeresultater tomme: >> state. navn [grep ("new", state.navn)] tegn (0)