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.
Ten blog koncentruje się na grafiku usługi LuckyTemplates i powiązanych kosztach wynagrodzeń. Pokażę ci, jak obliczać dane dotyczące czasu i rodzaju wynagrodzenia za pomocą języka DAX. Mam zamiar zademonstrować rozwiązanie DAX przy użyciu miar i inne przy użyciu kolumn obliczeniowych. Możesz obejrzeć pełny film tego samouczka na dole tego bloga.
Ten przykład pochodzi z , które prowadzimy w LuckyTemplates. Jest to rzeczywisty scenariusz, z którym często spotykamy się w organizacjach i firmach, a usługa LuckyTemplates jest właściwym narzędziem ułatwiającym i przyspieszającym pracę.
Więc przejdźmy do tego.
Spis treści
Karta ewidencji czasu pracy i płace usługi LuckyTemplates: rozwiązanie oparte na kolumnach obliczeniowych
W przypadku obliczonego rozwiązania języka DAX przy użyciu kolumn obliczeniowych przechodzę do tabeli Czas i tworzę miarę, którą nazywam CC-Regular Hours , aby obliczyć zwykłe godziny.
W tej formule pobieram godziny z tabeli i umieszczam je w zmiennej ( ). Następnie obliczam to święto, weekend lub zwykły dzień. Za pomocą funkcji wykorzystuję model danych, aby to ustalić, a następnie używam dwóch zmiennych (_IsHolidayDay i _IsWeekendDay ), aby określić trzecią zmienną ( _IsRegularDay ).
Na koniec używam instrukcji , w której sprawdzam regularne godziny. Pozostałe dwa (święta i weekendy) będą . A jeśli to zwykły dzień, chcę zwrócić godziny do ośmiu godzin, a następnie użyję konstrukcji RETURN Result .
Zrobię prawie to samo dla formuły godzin nadliczbowych ( CC-Overtime Hours ) – zmienię tylko instrukcję SWITCH TRUE. Spowoduje to zwrócenie godzin dla dnia weekendowego. Jeśli jest to zwykły dzień, zwróci godziny powyżej ośmiu godzin.
W przypadku godzin świątecznych zwróci wszystkie godziny, jeśli jest to dzień świąteczny, i zwróci spacje, jeśli jest to dzień weekendowy lub zwykły.
Przejdźmy teraz do płac. W przypadku formuły płacy za regularne godziny wykorzystam kolumnę obliczeniową, którą właśnie utworzyłem dla regularnych godzin. Zamierzam określić odpowiednie płace za pomocą WageType , Straight Time .
Otrzymuję wynagrodzenie godzinowe pracowników z modelu danych, a następnie używam funkcji , aby zastosować mnożnik z tabeli rozłączanych rodzajów wynagrodzeń . I na koniec obliczam zmienną Result , a na końcu mam RETURN Result .
W przypadku nadgodzin po prostu zmienię typ wynagrodzenia na Półtora czasu .
Zrobię to samo dla wynagrodzenia urlopowego, ale po prostu zmienię typ wynagrodzenia na Double Time .
Na koniec zrobię prostą sumę, aby udostępnić mi całkowitą wartość.
Gdy przeciągnę te kolumny do raportu, możemy zobaczyć wyniki.
Karta ewidencji czasu pracy i płace usługi LuckyTemplates: rozwiązanie DAX przy użyciu miar
Zamierzam zrobić prawie to samo, co w przypadku kolumn obliczeniowych, ale tym razem wprowadzę jedną małą zmianę.
Nie mam dostępu do wartości czasu bezpośrednio z tabeli, więc użyję tutaj , aby uzyskać godziny powiązane z konkretną pozycją czasu, która jest wyświetlana w wizualizacji. Poza tym kod jest taki sam, jak w przypadku wersji z kolumnami obliczeniowymi.
Zrobiłem bardzo podobną rzecz dla godzin nadliczbowych i godzin świątecznych. Obowiązują te same zasady, co w przypadku kolumn obliczeniowych.
Jeśli chodzi o płace, są one obliczane bardzo podobnie. Jedyną różnicą w stosunku do kolumn obliczeniowych jest zmienna dla godzin. Używam wartości miary, którą obliczyłem. To samo robię z wynagrodzeniem za nadgodziny i tym samym z wynagrodzeniem za urlop.
Następnie napiszę prostą miarę sumaryczną dla całkowitych płac.
A teraz dodaję te miary do tabeli, żebyśmy mogli zobaczyć wyniki. Zauważ, że żadna z miar nie pokazuje sumy. Aby zobaczyć łączne wartości miar tutaj, użyję wzorca napraw nieprawidłowe sumy . Aby to zrobić, muszę utworzyć miary, które używają wirtualnych tabel, aby naśladować fizyczną tabelę, którą mam tutaj.
Napraw nieprawidłowy wzór podsumowań
Aby to naprawić, muszę utworzyć miary, które używają wirtualnych tabel do naśladowania fizycznej tabeli, którą mam tutaj. Tak więc dla łącznej liczby godzin użyłem konstrukcji , aby utworzyć wirtualną tabelę z identyfikatorem czasu i godzinami. Następnie używam nad wirtualną tabelą, aby obliczyć wartość.
Przeciągnę to do tabeli poniżej i teraz możemy zobaczyć łączną liczbę godzin.
Zamierzam zrobić to samo dla płac, gdzie użyję i SUMMARIZE . A następnie dla wyniku użyję funkcji dla miary, którą już utworzyłem i SUMX dla wirtualnej tabeli.
Następnie dodaję to do tabeli tutaj i widzimy, że mamy teraz łączne płace.
Inną rzeczą jest to, że kiedy umieszczę moją miarę Płac całkowitych na prostym wykresie słupkowym z działami i typami płac, zobaczysz, że nie dostaję tutaj żadnych wartości.
Jest to część naprawionego problemu z nieprawidłowymi sumami. A jednym z najlepszych sposobów, jakie znalazłem, aby to naprawić, jest użycie wirtualnej tabeli i zmiana miary.
Więc usunę ten bez wirtualnego stołu i dodam ten z wirtualnym stołem.
Kolumna obliczeniowa usługi LuckyTemplates a miara: porównanie
kolumn obliczeniowych LuckyTemplates: wskazówki i najlepsze praktyki
Rozgałęzianie miar: strategia rozwoju usługi LuckyTemplates
Wniosek
Oba rozwiązania języka DAX doskonale nadają się do tego wyzwania związanego z grafiką i płacami w usłudze LuckyTemplates. Jednak mają one również swoje wady i zalety.
Korzyści płynące ze stosowania miar polegają na tym, że stanowią one najlepszą praktykę. Nie są one obliczane podczas odświeżania modelu, ale tylko wtedy, gdy miara jest faktycznie używana w wizualizacji. Wadą jest dla nich to, że podczas pracy z wirtualnymi tabelami do reprezentowania rzeczy w celu ich prawidłowego obliczenia potrzeba trochę dodatkowego kodu DAX. Ale to wcale nie jest wielka rzecz.
Jeśli chodzi o kolumny obliczeniowe, uważam, że są one łatwiejsze do nauczenia się i wizualizacji. Są bardzo znanym miejscem startu dla tych, którzy przychodzą z Excela. Jednak jednym z ograniczeń kolumn obliczeniowych jest to, że są one faktycznie tworzone fizycznie w modelu danych i zwiększają rozmiar modelu, co obniża wydajność raportu.
Ogólna zasada jest taka, że nie należy tworzyć kolumn obliczeniowych w tabelach faktów. Jeśli musisz utworzyć kolumnę obliczeniową, spróbuj to zrobić na tabelach wymiarów.
Osobiście używam kolumn obliczeniowych, aby dodać kategoryzację do niektórych tabel wymiarów, w których było wiele wymiarów do pokazania.
Mam nadzieję, że podobał ci się ten i wiele się nauczyłeś. Możesz obejrzeć pełny film z tego samouczka poniżej.
Dzięki!
Greg
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.