Innholdsfortegnelse:
- Hvis du kjenner den eksakte posisjonen til en undertekst i et tekstelement, bruker du substr () -funksjonen til å returnere verdien. Å trekke ut tekst som starter i tredje posisjon og stopper ved sjette tilstanden. navn, bruk følgende: >> hode (substr. (state.name, start = 3, stop = 6)) [1] "abam" "aska" "izon" "kans" "lifo" "lora" > Søk etter mønster i R
- mønster
Video: Top 25 Word 2016 Tips and Tricks 2024
Når du arbeider med tekst, kan du ofte løse problemer hvis du kan finne ord eller mønstre i tekst. R gjør det enkelt å gjøre. Tenk deg at du har en liste over stater i USA, og du vil finne ut hvilken av disse tilstandene inneholder ordet Ny.
For å undersøke dette problemet kan du bruke de innebygde datasettstatusene. navn, som inneholder - du gjettet det - navnene til USAs stater:
I stort sett kan du finne understrenger i tekst på to måter:
Ved posisjon:
-
For eksempel kan du fortelle R å få tre bokstaver som starter ved posisjon 5. Ved mønster:
-
For eksempel kan du fortelle R for å få substrings som samsvarer med et bestemt ord eller mønster. Et mønster er litt som et jokertegn. I noen kortspill kan du bruke Joker-kortet til å representere andre kort. På samme måte kan et mønster i R inneholde ord eller visse symboler med spesielle betydninger.
Hvis du kjenner den eksakte posisjonen til en undertekst i et tekstelement, bruker du substr () -funksjonen til å returnere verdien. Å trekke ut tekst som starter i tredje posisjon og stopper ved sjette tilstanden. navn, bruk følgende: >> hode (substr. (state.name, start = 3, stop = 6)) [1] "abam" "aska" "izon" "kans" "lifo" "lora" > Søk etter mønster i R
For å finne understrenger kan du bruke grep () -funksjonen, som tar to viktige argumenter:
mønster
:Mønsteret du vil finne.
-
x : Tegnvektoren du vil søke.
-
Anta at du vil finne alle statene som inneholder mønsteret Ny. Gjør det slik: >> grep ("Ny", state. Name) [1] 29 30 31 32 Resultatet av grep () er en numerisk vektor med posisjonene til hver av elementene som inneholder matchende mønster. Med andre ord, det 29. elementet i staten. Navnet inneholder ordet Nytt. >> state. navn [29] New Hampshire
Phew, det fungerte! Men å skrive inn posisjonen til hver matchende tekst kommer til å være mye arbeid. Heldigvis kan du bruke resultatene av grep () direkte til å dele den opprinnelige vektoren: >> tilstand. navn [grep ("New", state. name)] [1] "New Hampshire" "New Jersey" [3] "New Mexico" "New York"
Funksjonen grep tekst i samme tilfelle (store eller små bokstaver) som søkemønster. Hvis du søker etter mønsteret "nytt" i små bokstaver, er søkeresultatene dine tomme: >> state. navn [grep ("new", state.navn)] tegn (0)