Dodawaj, usuwaj i zmieniaj nazwy kolumn w R za pomocą Dplyr
W tym samouczku omówimy pakiet dplyr, który umożliwia sortowanie, filtrowanie, dodawanie i zmianę nazw kolumn w języku R.
Tworzenie kalendarza dni wolnych w usłudze LuckyTemplates ma kluczowe znaczenie dla wielu analiz czasowych. W tym samouczku pokażę, jak obliczyć określone daty świąt za pomocą miar języka DAX. Możesz obejrzeć pełny film z tego samouczka na dole tego bloga.
Ten przykład pochodzi z jednej z inicjatyw o nazwie Problem tygodnia, w ramach której co miesiąc bierzemy rzeczywisty problem DAX lub Power Query i szczegółowo go rozbijamy.
Użyłem techniki zwanej Rubber Duck Debugging. Jest zwykle używany do debugowania, ale uważam, że jest również bardzo cenny przy opracowywaniu początkowej struktury, której zamierzasz użyć do rozwiązania złożonego problemu, takiego jak w usłudze LuckyTemplates.
Zasadniczo polega to po prostu na użyciu gumowej kaczki lub osoby, z którą rozmawiasz, i wypowiedzeniu na głos rozwiązania, które sobie wyobrażasz, oraz opracowaniu planu ataku na problem.
Zwykły akt wypowiadania się, który często pomaga rozwiązać problem. W niektórych przypadkach w sytuacji debugowania pozwala uświadomić sobie, co robisz, czy ma to sens, i pomaga znaleźć sposób, aby to naprawić, rozwiązując problem.
Poniżej znajduje się rzeczywisty problem DAX dla tego konkretnego wyzwania. Mamy tutaj tabelę z 10 świętami z miesiącem i dniem. Niektóre dni są dniami szczególnymi, a niektóre względnymi. Musimy wymyślić miarę Holiday Date i Celebrated On.
Aby to zrobić, musimy przeanalizować pole Dzień na dwa komponenty. Pierwsza analiza to zdarzenie (trzecie, ostatnie, pierwsze, drugie), a druga to dzień (poniedziałek, czwartek). Są to dwie krytyczne informacje, które musimy rozdzielić.
Spis treści
Obliczanie określonych dat w kalendarzu świąt usługi LuckyTemplates
Normalnie zrobiłbym to w dodatku Power Query poprzez podział według ograniczników, ale ponieważ robimy to w języku DAX, będziemy musieli zrobić to w inny sposób. (Pamiętaj, że w tym wyzwaniu nie wolno nam używać dodatku Power Query).
Musimy obliczyć minimalną i maksymalną datę dla podanej nazwy roku, miesiąca i dnia. W tym przypadku możemy na przykład powiedzieć, że w 2027 r. mamy styczeń i trzeci poniedziałek. Kiedy już uzyskamy ten minimalny dzień dla danego miesiąca, możemy do niego dodać siedem dni, aby dostać się do drugiego poniedziałku, 14 dni, aby przejść do trzeciego poniedziałku i 21 dni, aby przejść do czwartego poniedziałku.
Inną techniką, którą chcę się z tobą podzielić, związaną z tym wyzwaniem, jest to, co nazywam budowaniem w częściach podczas tworzenia miary. Uważam to za bardzo pomocne w złożonej mierze, w której jeśli masz wiele zmiennych, masz wiele komponentów do zbudowania.
To, co zawsze robię, to na końcu zmienna wynikowa ( VAR Result ) i moja ostatnia instrukcja, która jest po prostu Return Result . Dzięki temu naprawdę łatwo jest wrócić i przetestować zmienne, które zbudowałem. Mogę przejść, śledzić i rozwiązywać go w częściach.
Ostatnią techniką, którą chcę się z wami podzielić, jest to, co nazywam wyszukiwaniem nieznanych funkcji. Na przykład, jeśli nie wiem, jakiej funkcji użyć w tym wyzwaniu związanym z kalendarzem świąt usługi LuckyTemplates, przejdę do karty Narzędzia zewnętrzne i przejdę do przewodnika SQLBI DAX .
Ma naprawdę fajną funkcję o nazwie Grupy (po lewej stronie), gdzie funkcje są pogrupowane według typu. I tak, jeśli myślę na przykład o przeanalizowaniu ciągu tekstowego, mogę poszukać Text functions .
Zapewnia wszystkie funkcje tekstowe dostępne w języku DAX. To świetny sposób na szybkie znalezienie funkcji języka DAX potrzebnej do pomiaru.
Miary języka DAX dla kalendarza świąt usługi LuckyTemplates
Dla miary Holiday Date stworzyłem tę serię s , zbierając daty z fragmentatora, miesiąc świąteczny, numer miesiąca i dzień z tabeli Date.
Następnie mam długość z tego wybranego dnia za pomocą funkcji długości ( ). W tym przypadku zwrócił tekst, więc musiałem zawinąć go w , aby zmienić ten tekst na wartość liczbową.
A potem użyłem funkcji , aby znaleźć pozycję spacji i zawinąłem ją w WARTOŚĆ, ale mówiąc, wyszukaj spację w wybranym dniu, zaczynając od pozycji pierwszej i zwracając zero, jeśli nie znajdę tam tego ciągu.
CharsBeforeSpace (znaki przed spacją) to po prostu SpacePosition. Liczba CharsAfterSpace (znaków po spacji) to po prostu długość ( SelDayLen ) łańcucha minus pozycja spacji. Z tego możemy zrobić FirstParse i SecondParse .
W tym momencie mamy teraz dwie zmienne, jedną reprezentującą zdarzenie, a drugą reprezentującą dzień.
A potem mamy podstawową funkcję ( Calc1st ), w której usuwamy filtr z tabeli dat. Następnie stosujemy filtry wybranego roku z fragmentatora, nazwę miesiąca, a następnie dzień tygodnia z drugiej analizy, którą wykonaliśmy.
Podobnie robimy to samo dla ostatniego obliczenia ( VAR CalcLast ).
Kiedy już to wszystko mamy, przechodzimy do instrukcji , a ostatnią częścią jest RETURN Result.
Na koniec chcę przeprowadzić Cię przez pomiar Celebrated On jako dodatkową premię z wyzwania. To jest po prostu prosta , w której wziąłem datę świąt, którą obliczyliśmy w poprzednim pomiarze, przeszedłem do tabeli Daty i wyszukałem nazwę dnia tygodnia. A potem po prostu zrobiłem instrukcję SWITCH , w której wzięliśmy ten wynik DayLookup . I na koniec kończę to RETURN DateAdjust .
Tworzenie tabeli kalendarza dla dni wolnych w usłudze LuckyTemplates
Niestandardowe kalendarze usługi LuckyTemplates: obliczanie dla zmiany miesiąca na miesiąc — 445 kalendarzy
Porównanie czasu dla niestandardowych tabel dat w usłudze LuckyTemplates
Wniosek
To wyzwanie kalendarza świąt LuckyTemplates, jak wspomniałem, jest prawdziwym problemem. Rozwiązanie, które wymyśliłem jest dość złożone, ale naprawdę skuteczne w obliczaniu konkretnych dat świąt.
Mam nadzieję, że wiele się nauczyłeś z tego samouczka. Zapoznaj się z pełnym samouczkiem wideo, aby uzyskać bardziej szczegółowe objaśnienie miar DAX.
Dzięki!
W tym samouczku omówimy pakiet dplyr, który umożliwia sortowanie, filtrowanie, dodawanie i zmianę nazw kolumn w języku R.
Odkryj różnorodne funkcje zbierania, które można wykorzystać w Power Automate. Zdobądź praktyczne informacje o funkcjach tablicowych i ich zastosowaniu.
Z tego samouczka dowiesz się, jak ocenić wydajność kodów DAX przy użyciu opcji Uruchom test porównawczy w DAX Studio.
Czym jest self w Pythonie: przykłady z życia wzięte
Dowiesz się, jak zapisywać i ładować obiekty z pliku .rds w R. Ten blog będzie również omawiał sposób importowania obiektów z R do LuckyTemplates.
Z tego samouczka języka kodowania DAX dowiesz się, jak używać funkcji GENERUJ i jak dynamicznie zmieniać tytuł miary.
W tym samouczku omówiono sposób korzystania z techniki wielowątkowych wizualizacji dynamicznych w celu tworzenia szczegółowych informacji na podstawie dynamicznych wizualizacji danych w raportach.
W tym artykule omówię kontekst filtra. Kontekst filtrowania to jeden z głównych tematów, z którym każdy użytkownik usługi LuckyTemplates powinien zapoznać się na początku.
Chcę pokazać, jak usługa online LuckyTemplates Apps może pomóc w zarządzaniu różnymi raportami i spostrzeżeniami generowanymi z różnych źródeł.
Dowiedz się, jak obliczyć zmiany marży zysku przy użyciu technik, takich jak rozgałęzianie miar i łączenie formuł języka DAX w usłudze LuckyTemplates.