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.
Pokażę ci, jak tworzyć niestandardowe rozstrzyganie remisów podczas korzystania z RANKX w usłudze LuckyTemplates .
Remis w krytycznej części wyników to częsty scenariusz. Istnieje wiele rozstrzygających remisów, których możesz użyć, ale ważne jest, aby wybrać ten, który ma największy sens w każdej sytuacji. Możesz obejrzeć pełny film tego samouczka na dole tego bloga.
Spis treści
Rola RANKX w LuckyTemplates
Mam nawyk porównywania funkcji DAX do pracy w prawdziwym życiu. Pomaga mi to powiązać każdą funkcję z tym, co robi w usłudze LuckyTemplates.
RANKX ocenia i porządkuje elementy według określonego zestawu kryteriów. W prawdziwym świecie można to porównać do sędziego na wystawie psów, który prosi uczestników o odpowiednie ustawienie się w szeregu.
W scenariuszu, którego użyję dzisiaj, użyję RANKX jako sędziego w hipotetycznym konkursie sprzedaży. Dane obejmują numery z zespołu sprzedaży, a nagroda trafia do osoby z najwyższą łączną sprzedażą w miesiącu .
Żeby było ciekawiej, załóżmy, że pierwszą nagrodą jest Cadillac El Dorado, a drugą nagrodą jest zestaw noży do steków. To ogromna różnica w wartości, co oznacza, że zwycięzca mógł być tylko jeden.
Patrząc na mój stół, mam listę wszystkich sprzedawców w zespole sprzedaży.
Dodam dane dotyczące całkowitej sprzedaży każdej osoby .
To jest miara RANKX , którą stosuję do tej tabeli.
Jest to po prostu podstawowa konfiguracja RANKX , która wykorzystuje , dzięki czemu nie włączam sumy podczas sortowania rang.
Sprzedawcy są uszeregowani na podstawie sprzedaży . Są one ułożone w kolejności DESC . Tutaj używam Skip na wypadek remisu.
Niektórzy mogą używać Dense zamiast Skip , ale w tym przypadku żadne z nich nie pomaga.
Pomiń kontra gęste
Aby zademonstrować, w jaki sposób Pomiń wpływa na miarę, przeciągnę i upuszczam Rangi do tabeli.
Następnie posortuję dane według Rank .
Tabela pokazuje remis na miejscu numer 1. Ale to nie był dobry miesiąc dla zespołu sprzedaży, więc kierownik nie może sobie pozwolić na oddanie 2 cadillaców eldorado. To oznacza, że muszę wymyślić dogrywkę, aby zdecydować, kto dostanie samochód, a kto noże do steków.
Jasper i Max są na górze, remisując na 1. Ponieważ użyłem Pominięcia, zobaczysz, że ranga przeskakuje do 3 po dwóch jedynkach na górze . To nie działa dla mnie, ponieważ nadal pozostawia mnie z 2 zwycięzcami.
Co się stanie, jeśli użyję opcji Gęstość zamiast Pomiń ?
Jeśli użyję Gęstego , sam remis nie zostanie zmieniony. Ale zamiast numeru 3 po remisie pokazuje numer 2 .
Najwyraźniej Dense nie działa również w tym przypadku. Oznacza to, że musiałbym zastosować niestandardowy rozstrzygający remis.
Wybór niestandardowego rozstrzygania remisów
Dobry niestandardowy tie-break jest definiowany przez dwie główne cechy.
Po pierwsze, musi znacząco rozróżnić powiązane elementy. Musi to być czynnik oddzielający dwa lub więcej powiązanych ze sobą elementów.
Po drugie, nie powinno zmieniać rangi ani kolejności elementów, które nie są powiązane.
Myśląc o tych dwóch aspektach, łatwo jest wymyślić kilka rozstrzygających remisów.
Całkowita sprzedaż jest naszym głównym czynnikiem rankingowym.
Muszę więc pomyśleć o innych czynnikach, które można wykorzystać do zerwania remisu spowodowanego podobnymi danymi w 2 górnych wierszach.
Liczba sprzedaży może wynosić jeden. Kto kręci się najbardziej? Kto zdobył największą liczbę klientów?
Maksymalną sprzedaż można również sprawdzić, sprawdzając, kto zdobył największe konta.
Mógłbym też spojrzeć na średnią sprzedaż.
W tym przypadku zdecydowałem się na Median Sales . Nie jest tak pod wpływem wartości odstających pochodzących z górnego lub dolnego końca. Oznacza to, że może dać lepszą miarę tendencji centralnej.
Tworzenie niestandardowego rozstrzygania remisów
Tworzenie rozstrzygającego remisu wymaga sporej ilości języka DAX, ale koncepcja jest prosta.
Mam Ranking2 jako zmienną. Użyłem również HASONEVALUE z tego samego powodu, dla którego użyłem go wcześniej w głównym wzorze RANKX . Jedyną różnicą jest to, że tym razem używam Median Sales zamiast Total Sales .
Następnie biorę wynik tej zmiennej i dzielę go przez 100.
Ponieważ mam liczby całkowite w mojej całkowitej sprzedaży, mogę grać z pierwszym i drugim miejscem po przecinku, aby rozstrzygnąć remis. Dzielenie tego przez sto przenosi liczby poza przecinek dziesiętny, tak że rozróżnia remisujące liczby na górze bez wpływu na pozostałe wyniki.
To pozostawia nam najwyższe stopnie pokazujące 0,01, 0,02 i tak dalej. Więc odwrócę to tak, aby najwyższy wynik uzyskał najwyższy wynik w dogrywce.
Więc w ramach HASONEVALUE odejmę RankScale od 1 .
Kiedy zastosuję to do tabeli, zobaczysz, że mam teraz dwa miejsca po przecinku pod moim RANKX Tiebreaker .
Zamierzam również przeciągnąć moją medianę sprzedaży do tabeli, aby wyraźniej pokazać wpływ naszego dogrywki.
Patrząc na te liczby, faktycznie widać, że ani Max, ani Jasper nie uzyskali najwyższych wyników. Właściwie to był Martin Perry.
Pamiętaj jednak, że jest to tylko remis , a łączna sprzedaż nadal pozostaje głównym czynnikiem rankingowym . Oznacza to, że powinienem porównywać tylko liczby dla powiązanych wierszy .
Więc po prostu dodam moją łączną sprzedaż i rozstrzygnięcie RANKX, aby uzyskać dane do kolumny Łączna sprzedaż dogrywki .
Uruchomię RANKX na nowej łącznej sprzedaży z zastosowanym remisem i posortuję dane.
Teraz pokazuje pełny przebieg od 1 do n bez powiązanych elementów.
Używanie funkcji RAND do łamania więzi
Mogą wystąpić przypadki, w których losowo wygenerowana liczba może służyć jako rozstrzygający remis.
Jednym z przykładów może być sytuacja, w której chcesz utworzyć grupę fokusową obejmującą losowy wybór spośród 20 najlepszych sprzedawców. Jeśli w grupie są remisy, rozsądnie jest użyć losowej liczby jako rozstrzygnięcia remisu.
Ale ogólnie problem z Power Query i DAX polega na tym, że losowe funkcje zachowują się inaczej . Nie uzyskasz oczekiwanych wyników, zwłaszcza jeśli użyjesz w funkcji iteracyjnej.
Funkcja LOS zwraca losową liczbę z przedziału od 0 do 1 . Więc jeśli zdecydujesz, że scenariusz, nad którym pracujesz, potrzebuje losowo wygenerowanej liczby, aby rozstrzygnąć remis, najlepiej byłoby to zrobić w tej części miary.
Zamiast tylko Total Sales , powinno to pokazywać Total Sales plus RAND . Ale znowu, w tym konkretnym scenariuszu, nie da mi to ostatecznego wyniku w rankingu, którego potrzebuję.
Uwagi dotyczące RANKX — koncepcje formuł LuckyTemplates i języka DAX
Głębsze zrozumienie zaawansowanego RANKX
Tworzenie dynamicznych tabel rankingowych przy użyciu RANKX w usłudze LuckyTemplates
Wniosek
Jak widać w tym przykładzie, rozstrzygnięcie remisu podczas korzystania z RANKX w usłudze LuckyTemplates jest dość łatwe. Sztuczka polega na ustaleniu, który niestandardowy remis daje najbardziej logiczne wyniki.
W przyszłości zamierzam zrobić więcej samouczków na temat innych rozstrzygających remisów, zwłaszcza na temat używania RAND w scenariuszu próbkowania. Uważam, że warto się temu przyjrzeć głębiej.
Tymczasem mam nadzieję, że skorzystanie z tego podejścia zadziała, jeśli pracujesz obecnie nad podobnym scenariuszem lub jeśli spotkasz się z czymś takim w przyszłości.
Wszystkiego najlepszego
***** Nauka LuckyTemplates? *****
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.