Pipe In R: Koblingsfunksjoner med Dplyr
I denne opplæringen lærer du hvordan du kobler funksjoner sammen ved å bruke dplyr-røroperatøren i programmeringsspråket R.
I dette blogginnlegget skal vi se nærmere på en egendefinert funksjon for tekstrensing som jeg laget for vår pågående serie på LuckyTemplates TV kalt . Du kan se hele videoen av denne opplæringen nederst på denne bloggen.
For uke #2 har vi noen rotete data som må ryddes opp. Målet vårt her er å rense alle tekstverdiene i begge kolonnene.
For denne oppgaven opprettet jeg en ren tekstfunksjon.
Men først, la oss ta en rask titt på M-koden.
Denne funksjonen krever enkalt minTekst. Verdien skal være av typen tekst og funksjonen skal returnere en tekstverdi fordi ikke alle variablene som er oppført nedenfor vil returnere en tekstverdi.
Angivelse av returtype vil resultere i en feil. For å forhindre at feilen skjer, kan jeg kommentere det foreløpig.
Hvis vi vil se hva den første variabelen returnerer, er alt vi trenger å gjøre å referere til den ved navn, etter in-leddet. Så jeg skal kopiere ToRemove-variabelen, lime den inn på bunnlinjen og trykke OK.
For å se resultatet av den funksjonen, må vi påkalle den. Så la oss legge til en egendefinert kolonne i denne spørringen.
Deretter påkaller funksjonen vår, velg denne sammenslåtte kolonnen og trykk OK.
Innholdsfortegnelse
Opprette listene fra tom spørring
Vi ser nå at ToRemove-trinnet lager en liste. Faktisk er det en kombinasjon av to lister.
Den første listen skapte sitattegnene og den andre listen er en rekke tegn som jeg ønsket å fjerne.
Hvordan opprettet jeg denne listen?
Vel, jeg brukte en funksjon kalt Txt.ToList.
Du kan få tilgang til den interne funksjonsdokumentasjonen ved å lage en tom spørring, skrive inn funksjonsnavnet uten parentes og deretter trykke Enter.
Vi ser at Text.ToList returnerer en liste over tegnverdier fra en gitt tekstverdi.
La oss lime inn noen tekster og påkalle denne funksjonen.
Det oppretter en ny spørring og du kan se at denne listen inneholder alle bokstavene som vi ser her i teksten.
Husk at jeg la til en ekstra liste, ikke sant? Jeg kombinerte to lister og jeg brukte og-tegnet for å gjøre det.
La oss gjenskape det nå. Jeg brukte og-tegnet og listeinitialisereren, og skrev deretter inn anførselstegnene.
Vi ser nå at sitatene er lagt til denne listen, men hvorfor opprettet jeg en liste?
Vel, i neste trinn av tekstrensefunksjonen min brukte jeg en M-funksjon kalt Tekst. Fjerne.
Og du ser at du kan skrive inn en tekst og deretter en liste over tegn som du vil fjerne fra den strengen.
La oss gå tilbake til vår tekstrensefunksjon.
Til. Fjern opprettet disse to listene, og kombinerte dem deretter til en enkelt liste.
Og la oss deretter lime inn CleanText-variabelen. 'in'-leddet kaller M-funksjonen Text.Remove og sender myText-variabelen, og kaller deretter To.Remove-listen. La oss se hva dette gjør.
La oss gå tilbake til søket vårt. Dette returnerer ikke lenger en liste, men det returnerer noen tekstverdier.
Trimming i Power Query
Neste trinn er trimming . Som du kan se fra bildet ovenfor, har vi noen ekstra mellomrom og et etterfølgende komma på slutten som vi ønsker å bli kvitt. For å gjøre dette kan vi bruke trimfunksjonene. La oss gå tilbake til spørringen for å undersøke M-koden.
I M-koden nestet jeg 2 trimfunksjoner. Den første strengfunksjonen fjerner de ekstra mellomrommene foran og på slutten av vår CleanText-variabel.
For de gjenværende tekstene vi har, fjerner vi også mellomrommene fra resultatstrengen.
Vi skal også fjerne etterfølgende komma.
La oss se resultatet. Jeg skal kopiere variabelnavnet, lime det inn etter "in"-klausulen og klikke Ferdig. Når vi oppdaterer søket vårt, kan du se at de ekstra mellomrommene er borte og det etterfølgende kommaet er fjernet.
I de siste trinnene i spørringen min erstattet jeg bare noen tekstverdier.
I det siste tilfellet erstattet jeg den understrekingen med et mellomrom. La oss kopiere det og lime det inn etter "in"-klausulen. Jeg har også aktivert returtypen igjen.
La oss gå tilbake til søket vårt og undersøke resultatene – så langt, så bra!
Nå ønsker vi ikke å lage nye kolonner for å påkalle funksjonen vår, ikke sant? Det vi kan gjøre er å transformere kolonne 1 til flettekolonnen i stedet.
Jeg skal fjerne dette egendefinerte kolonnetrinnet.
Deretter skal jeg bruke brukergrensesnittet til å lage hoveddelen av koden for oss. På transformeringsfanen velger du begge kolonnene, går til Format og velger en funksjon.
Det spiller ingen rolle hvilken funksjon som er valgt fordi dette er M-koden som genereres av brukergrensesnittet. Vi kan nå erstatte den teksten. Nedre funksjon...
… med vår ren tekst-funksjon. Forhåpentligvis forstår du hvorfor jeg måtte legge til fx foran. Det er ingen "i funksjon" som starter med det.
Når vi trykker OK, kan du se at tekstene våre er renset. Dette er fantastisk.
Konklusjon
Hvorfor måtte vi gå gjennom alle problemer med å lage en tilpasset rengjøringsfunksjon? Vel, hvis det er sannsynlig at du må gjenta dette trinnet eller bruke lignende logikk i fremtiden, kan du lagre denne funksjonsspørringen.
Ved å gjøre det vil det fremskynde søkeutviklingen på et senere tidspunkt. En annen god grunn er fordi det også er morsomt å gjøre.
Jeg håper du likte denne opplæringen. Hvis du gjorde det, ikke glem å abonnere på LuckyTemplates-kanalen .
Melissa
I denne opplæringen lærer du hvordan du kobler funksjoner sammen ved å bruke dplyr-røroperatøren i programmeringsspråket R.
RANKX fra LuckyTemplates lar deg returnere rangeringen til et spesifikt tall i hver tabellrad som utgjør en del av en liste med tall.
Lær hvordan du demonterer en PBIX-fil for å trekke ut LuckyTemplates-temaer og bilder fra bakgrunnen og bruke den til å lage rapporten din!
Excel Formulas Cheat Sheet: Mellomveiledning
LuckyTemplates-kalendertabell: Hva er det og hvordan du bruker det
Lær hvordan du installerer programmeringsspråket Python i LuckyTemplates og hvordan du bruker verktøyene til å skrive koder og vise visuelle elementer.
Lær hvordan du beregner dynamiske fortjenestemarginer ved siden av LuckyTemplates og hvordan du kan få mer innsikt ved å grave dypere inn i resultatene.
Lær hvordan du sorterer feltene fra kolonner med utvidet datotabell på riktig måte. Dette er en god strategi å gjøre for vanskelige felt.
I denne artikkelen går jeg gjennom hvordan du kan finne de beste produktene dine per region ved å bruke DAX-beregninger i LuckyTemplates, inkludert TOPN- og CALCUATE-funksjonene.
Lær hvordan du bruker en søppeldimensjon for flagg med lav kardinalitet som du ønsker å inkludere i datamodellen din på en effektiv måte.