Pipe In R: Tilslutningsfunktioner med Dplyr
I denne øvelse lærer du, hvordan du kæder funktioner sammen ved hjælp af dplyr-røroperatoren i programmeringssproget R.
Jeg skal vise dig, hvordan du bruger offset-funktionen i LuckyTemplates . Det er et af de mest dynamiske værktøjer, du kan bruge især i dine datotabeller.
Når du mestrer, hvordan du anvender det i dine tidsintelligensprojekter, kan du få mere dybdegående indsigt, som du ikke får ved at bruge nogen anden tilgang. Du kan se den fulde video af denne tutorial nederst på denne blog.
Indholdsfortegnelse
Forståelse af mekanikken i offsetfunktionen
Jeg starter med at vise dig mekanikken i offset-funktionen.
Forskydninger viser forskellen mellem dagens dato og de andre datoer i dine data.
Som du kan se i min datotabel nedenfor, fokuserede jeg på kvartal og år, så jeg kan se faktiske databevægelser.
Den lilla række viser den aktuelle periode . Bemærk, at den aktuelle periode altid har en offsetværdi på 0 .
Over det viser i gult alle data, der kommer fra fortiden . Du vil se, at tallene her enten er 0 eller mindre end 0, repræsenteret ved de negative data .
Det betyder, at for data fra fremtiden vil disse vise positive værdier . Afhængigt af kolonnens granularitet kan den også indeholde et 0 .
Så hvad gør offsets kraftfulde?
Offsets kan være sekventielle tal, der repræsenterer forskellen mellem forskellige data i tabellen . Men det, der gør offsets fantastisk, er, at de ikke har grænser .
For eksempel vil kvartaler løbe fra 1 til 4, hvilket repræsenterer de 4 kvartaler på et år. Måneder løber fra 1 til 12, mens uger kan løbe fra 1 til 52 eller 53, alt efter hvilket år det er. Men når jeg når det sidste tal, må jeg starte forfra.
Dette er ikke tilfældet for forskydninger. Når det kommer til offsets, vil de altid vise en relativ position til den aktuelle dato og den anden dato, der refereres til .
Så hver gang datotabellen opdateres, opdateres logikken, der får forskydningerne til at fungere, også. Det betyder, at en opdateret værdi også vil blive vist i datotabellen.
Eksempel på en uge offset kolonne
For at give dig et klarere billede af, hvordan offset-funktionen fungerer, vil jeg give dig et eksempel på, hvordan den anvendes.
I mine eksempeldata viser det dagens dato som den 24. april 2020 .
Igen siger offset-principperne, at den aktuelle periode er repræsenteret ved 0, fremtidige data er repræsenteret af positive værdier, og tidligere perioder er repræsenteret med negative tal .
Jeg har også en slicer på min side, som indeholder WeekOffset-værdien. I øjeblikket viser den alle værdier fra -53 til 0, hvor 0 repræsenterer den aktuelle uge .
24. april (som er i dag) falder i uge 17 .
Denne udvidede datotabel dækker kun ISO-ugenumrene . Det betyder, at uger starter på en mandag . Det betyder også, at en uge altid vil indeholde 7 dage .
Men der er en masse tilpassede ugekrav, der ikke følger den samme logik. Du kan finde ud af mere om disse sager i forskellige emner, der er dækket i LuckyTemplates Forum.
Du kan også overveje at bruge måned og år i stedet for uge og år, hvis det passer bedre til din situation.
Når du går tilbage til eksempeldataene, har du måske bemærket, at WeekOffset- værdierne er i et perfekt sekventielt talområde .
Dette skyldes, at de deler den samme granularitet hele vejen igennem . Der er ingen duplikerede værdier og ingen manglende værdier.
Selvfølgelig udføres det samlede salg mål, der bruges her på den sædvanlige måde, med kun en almindeligover Salg for Mængden gange Prisen . Derefter bliver det hele samlet for at få en ugentlig værdi.
Men hvad hvis jeg kun vil se de sidste 4 ugers salg?
Jeg skal bare ændre min slicer til et område på -3 til 0 .
Nu viser min tabel kun de sidste fire ugers salg.
Så efterhånden som jeg bevæger mig gennem tiden, bliver min datotabel opdateret. Det samme sker, hvis nye salgsresultater indlæses i faktatabellen.
Brug af forskydninger i DAX
Denne gang vil jeg vise dig, hvordan offset-funktionen kan bruges i DAX-mål.
Jeg har en tabel med Uge & År og Samlet salg .
Så hvis jeg vil beregne den foregående uges salg uden modregninger, skal jeg først udtrække, hvad CurrWeek- tallet er, og derefter kontrollere, hvad CurrYear- værdien er.
Hvis jeg har brug for at springe forbi et års grænse, bliver jeg nødt til at beregne hvad Ugenummer er for det sidste år.
Derfra ville jeg bruge SUMX som en itererende funktion på datotabellen. Jeg skulle også tjekke om CurrWeek er uge nummer 1 .
Hvis det ikke er uge 1, skal jeg bare trække 1 fra CurrWeek-værdien for CurrYear . Derefter kan det samlede salg endelig opsummeres .
Ser du på tabellen nedenfor, kan du nu se, at alle værdierne er perfekt aggregerede. Værdierne, der vises under Samlet salg, overføres simpelthen til den følgende uge.
Selvom jeg bevæger mig forbi en årsgrænse fra 2017 til 2018, bryder mønsteret ikke. Det samlede salg fra den sidste uge af 2017 er stadig perfekt beregnet for uge nummer 1 i 2018.
Denne gang vil jeg lave den samme beregning, men med datotabelforskydninger anvendt.
Sådan ser det mål ud, når jeg bruger offsets.
Så for at få PrevWeek- værdien skal jeg bare referere til den valgte WeekOffset og trække 1 fra.
Så vil jeg brugefunktion for Samlet salg over Datoer , hvor WeekOffset er lig med PrevWeek- værdien.
Ser man på resultaterne, ser resultaterne ud til at være perfekte, selv i overgangen fra 2017 til 2018.
Spørgsmålet er dog i totalen . Dette er åbenbart ikke den rigtige værdi.
Sådan løser jeg det.
Bemærk først, at kolonnen Uge og år er i stigende rækkefølge .
Jeg vil ændre det og sortere kolonnen i faldende rækkefølge i stedet med 2020 øverst.
Fordi der ikke kommer nogen kontekst fra Uge og År , identificerer den ikke den aktuelle uges offsetværdi, men trækker stadig 1 fra . Men det, jeg kan gøre, er at anvende en kumulativ total for at justere totalen .
Sådan kommer målingen til at se ud:
Begyndelsen af foranstaltningen ændrer sig ikke. Det er nøjagtigt det samme som det forrige mål, jeg anvendte.
Men da jeg skal bruge et mønster svarende til kumulative totaler, er jeg nødt til at bruge CALCUATE- funktionen på FirstWeek over Datoer med 1 trukket fra.
Jeg skal også identificere MAX WeekOffset- værdien fra ALLSELECTED- datoerne og trække en fra den også.
Derefter bruger jeg funktionen CALCUATE igen for Total Sales . Jeg vil brugefunktion til at inkludere ALLE datoer . WeekOffset-værdien skal være større end eller lig med FirstWeek og mindre end eller lig med LastWeek .
Igen følger dette det grundlæggende mønster for kumulative totaler.
Så kan jeg gå videre til at kontrollere totalen ved at bruge mønstrene.
Så HVIS Ugen & Året ER INCOPE , forventer jeg, at resultaterne viser LWS-salget . Men hvis det ikke er det, forventer jeg, at LWTotal dukker op.
Så hvis jeg går tilbage til min tabel, vil den nu vise den korrekte total.
Forskydninger for bestemte uger
Lad mig gå tilbage til det eksempel, jeg brugte tidligere, hvor jeg filtrerede dataene til kun at vise de sidste fire uger.
Hvis jeg går ind i målingen, kan jeg komme med de samme resultater ved hjælp af offsets. Sådan ville det se ud.
Jeg skulle bare identificere den aktuelle WeekOffset- værdi for konteksten, der kommer fra rækkerne.
Når jeg har det, kan jeg anvende CALCUATE- funktionen på det samlede salg af ALLE datoer , hvor WeekOffset er større end eller lig med ThisWeek minus 3, eller mindre end eller lig med værdien for ThisWeek .
Dette returnerer nøjagtig den samme værdi som det eksempel, jeg prøver at kopiere.
Konklusion
Eksemplerne, jeg viste dig ovenfor, beviser, hvor dynamiske offsets virkelig er. Du kan bruge dem i filtre, udsnit og endda i DAX-beregninger.
Offsets kan også bruges i udvidede datotabeller for uger, måneder, kvartaler, år og regnskabsår. De giver en masse fleksibilitet og kan nemt hjælpe dig med at få de resultater, du ønsker.
Bare fortsæt med at lege med offsets og se, hvilke andre anvendelser du kan have for dem. Du kan også tjekkefor andre tilfælde, hvor offset-funktionen viste sig at være nyttig.
Alt det bedste,
Melissa
I denne øvelse lærer du, hvordan du kæder funktioner sammen ved hjælp af dplyr-røroperatoren i programmeringssproget R.
RANKX fra LuckyTemplates giver dig mulighed for at returnere rangeringen af et specifikt tal i hver tabelrække, der udgør en del af en liste over tal.
Lær, hvordan du adskiller en PBIX-fil for at udtrække LuckyTemplates-temaer og -billeder fra baggrunden og bruge den til at oprette din rapport!
Excel Formler Snydeark: Mellemvejledning
LuckyTemplates kalendertabel: Hvad er det, og hvordan man bruger det
Lær, hvordan du installerer programmeringssproget Python i LuckyTemplates, og hvordan du bruger dets værktøjer til at skrive koder og vise billeder.
Lær, hvordan du beregner dynamiske fortjenstmargener ved siden af LuckyTemplates, og hvordan du kan få mere indsigt ved at grave dybere ned i resultaterne.
Lær, hvordan du sorterer felterne fra kolonner med udvidet datotabel korrekt. Dette er en god strategi at gøre for vanskelige felter.
I denne artikel gennemgår jeg, hvordan du kan finde dine topprodukter pr. region ved hjælp af DAX-beregninger i LuckyTemplates, herunder funktionerne TOPN og CALCUATE.
Lær, hvordan du bruger en uønsket dimension til flag med lav kardinalitet, som du ønsker at inkorporere i din datamodel på en effektiv måde.