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.
Wirtualny stół usługi LuckyTemplates to mój ulubiony temat języka DAX. Są kluczem do odblokowania pełnej mocy języka DAX. Tabele wirtualne to jedyny typ tabel w usłudze LuckyTemplates, który jest w pełni dynamiczny, i istnieją problemy, które można rozwiązać tylko poprzez zastosowanie technik tabel wirtualnych w swoich miarach. Możesz obejrzeć pełny film z tego samouczka na dole tego bloga.
W tym samouczku podzielę się moimi 5 najważniejszymi wskazówkami i sztuczkami, które zgromadziłem przez lata i które naprawdę pomogły mi zrozumieć i debugować to, co dzieje się w wirtualnych tabelach usługi Power Bi.
Przykład, który dzisiaj omówię, pochodzi z i pochodzi od członka o imieniu Dave C, który pracuje w dziedzinie bezpieczeństwa przemysłowego. Dave miał serię wyników bezpieczeństwa i chciał je znormalizować, tak aby najwyższy wynik wynosił 10, a następnie dynamicznie wymyślić N-ty na tej liście.
Początkowo myśleliśmy o zrobieniu tego za pomocą prostej miary , ale później zdaliśmy sobie sprawę, że wiele jego znormalizowanych wartości ma powiązania. Na przykład, jeśli chcesz siódmą pozycję na liście, w RANKX nie będzie cyfry siedem. Nie ma łatwego sposobu na wyciągnięcie tego z warunku filtra. Zdecydowaliśmy się więc na miarę opartą na , aby zawsze odliczała n-tą liczbę.
Jest to podobne do sytuacji, gdy wyciągasz siódmą kartę z talii, odliczasz siedem kart, a następnie odwracasz ten stos siedmiu kart i karta na dole jest tą, którą chcesz. Zrobimy odpowiednik tego w takcie TOPN.
Spis treści
Porada nr 1: użyj zewnętrznego narzędzia do wizualizacji wirtualnej tabeli usługi LuckyTemplates
Możesz użyć DAX Studio lub Edytora tabelarycznego. W tym przykładzie używam Edytora tabelarycznego 3 (TE3). Jest to technicznie możliwe przy użyciu karty Modelowanie — Nowa tabela, ale spowoduje to utworzenie fizycznych tabel w modelu danych. Będziesz musiał ręcznie przełączać się między tym a edytorem, a jest to po prostu powolny i trudny sposób na zrobienie tego.
Kiedy zobaczysz dynamiczny sposób, w jaki można to zrobić za pomocą zewnętrznego narzędzia, zobaczysz korzyści.
Tak więc w TE3 tworzymy nowe zapytanie DAX. Możemy wziąć nasz początkowy pomiar i skopiować go do naszego zapytania DAX.
Jeśli pamiętasz, zapytania DAX zawsze zaczynają się od EVALUATE . Na początku wystąpi błąd, ponieważ zapytania języka DAX zwracają tabele . Była to miara z dwiema ostatnimi zmiennymi, które są skalarami. To, co możemy tutaj zrobić, to zmienić wartość zwracaną , co jest moją następną wskazówką.
Porada 2: Debuguj wirtualną tabelę usługi LuckyTemplates w częściach przy użyciu zmiennych
Tabele wirtualne można debugować w taki sam sposób, jak w przypadku miar — kawałek po kawałku, zmieniając zwracaną wartość. Zacznijmy od pierwszej wirtualnej tabeli, vEvalTable . Po prostu zamieniamy wartość RETURN (końcową) na naszą pierwszą zmienną (VAR). I widać, że błąd znika, ponieważ zapytanie DAX pobiera teraz tabelę.
W tabeli vEvalTable bierzemy oryginalne dane, które są wynikami bezpieczeństwa, normalizujemy je i dodajemy tę kolumnę wartości znormalizowanej do tabeli wirtualnej. Mamy indeks, wartość regionu i wartość znormalizowaną. Możemy sortować te wartości w górę lub w dół, a także filtrować wartości.
To daje nam dokładnie to, czego oczekiwaliśmy. Zwraca 50 wierszy, czyli pełny zestaw danych. Wszystko idzie dobrze, więc zejdźmy na dół i zbadajmy następną tabelę, którą jest vTableTopN . W tej tabeli bierzemy TOPN za pomocą n-tej wartości suwaka pozycji. W tym przykładzie mamy tę siódmą wartość z powyższej wirtualnej tabeli (vEvalTable) i bierzemy ten TOPN na podstawie znormalizowanej wartości w kolejności malejącej.
Więc kiedy zmienimy naszą funkcję RETURN na taką, to odpada i nic nie otrzymujemy. Przyjrzyjmy się dlaczego, ponieważ jest to naprawdę ważna koncepcja debugowania i zrozumienia wirtualnych tabel.
Jeśli spojrzymy na formułę, mamy tutaj N-tą wartość suwaka pozycji jako głównego podejrzanego. Wracając do LuckyTemplates, widzimy, że jest to po prostu zbieranie liczby siedem. Zauważ, że suwaki istnieją w kontekście strony .
I tak w tym przypadku, gdy patrzymy na debugowanie tej tabeli poza kontekstem, ta wybrana wartość nie ma wokół siebie kontekstu . Nie ma nic, jeśli chodzi o możliwość wyciągnięcia tej liczby. Otrzymaliśmy TOPN, ale nie wiemy, jakie jest N w TOPN, ponieważ ta wybrana wartość zwraca pustą wartość.
Jak sobie z tym poradzić? Spójrzmy na wybraną miarę wartości. Przez większość czasu zawsze zwracamy uwagę na pierwszy parametr w , ale istnieje drugi parametr, który jest alternatywny. To prowadzi nas do mojej trzeciej wskazówki.
Porada 3: Użyj alternatywnego parametru w SELECTEDVALUE
To, co się tutaj wydarzyło, polega na tym, że ciągnął puste miejsce jako zastępca. Ale to, co chcemy zrobić (do celów debugowania), to umieścić tutaj prawdziwą wartość . Więc stawiamy numer 7 i zapisujemy to.
Teraz mamy pewne wartości. Zwraca siedem wierszy, co jest dokładnie tym, co powinno z powodu wartości TOPN wynoszącej siedem.
Przejdźmy dalej do następnej wirtualnej tabeli, którą jest vTableNthItem . Mamy ten stos siedmiu kart, a ten stół w zasadzie go odwraca. W poprzedniej tabeli byliśmy w porządku malejącym, a teraz jesteśmy w porządku rosnącym.
Jeśli weźmiemy i skopiujemy to do sekcji RETURN, otrzymamy wyniki. Ciekawe, że nie zwraca jednego wiersza. Zwraca trzy rzędy, ponieważ te trzy są remisowe. To jest właśnie powód, dla którego w tym przypadku używamy TOPN zamiast RANKX.
Przejdźmy teraz do Wyniku . Jeśli skopiujemy wynik VAR do sekcji RETURN, dojdziemy do mojej czwartej wskazówki.
Porada 4: Użyj { }, aby zamienić skalary w tabele
W formule bierzemy max ( ) tego vTableNthItem i zwracamy znormalizowaną wartość. Może to być , może to być , może to być . To tylko jakiś agregator, który zwraca tę jedną wartość w tej tabeli. I tak, jeśli skopiujemy to w dół, to da nam błąd, ponieważ to jest teraz skalar.
Ale to jest moja czwarta wskazówka, która jest w kontekście debugowania. To, co możesz zrobić, to po prostu dodać nawiasy klamrowe . W ten sposób zamienia ten skalar w tabelę.
A potem to, co tutaj mamy, to tylko końcowe sprawdzanie błędów, czyli jeśli okaże się, że tabela ewaluacyjna jest mniejsza niż liczba wierszy, zwróci niewystarczające dane. Ale wiemy, że w tym przypadku nasz zbiór danych jest wystarczająco duży. Jednak możemy to po prostu przetestować, wpisując Final . Ponownie, ponieważ to jest skaler, potrzebujemy również nawiasów klamrowych i otrzymamy tutaj tę samą wartość.
Zagłębiliśmy się w tę wirtualną tabelę i debugowaliśmy ją, a także użyliśmy alternatywnej wartości w SELECTEDVALUE, aby zapobiec wypadnięciu z kontekstu. Teraz chcę ci tylko pokazać jedną dodatkową wskazówkę, która okazała się naprawdę przydatna.
Porada 5: Użyj CONCATENATEX/UNICHAR, aby zamienić tabelę w skalar
W kontekście debugowania będziesz chciał zobaczyć w usłudze LuckyTemplates, jak wygląda ta tabela. Ogólna zasada jest taka, że miara może zwrócić tylko wartość skalarną, a nie tabelę. Ale jest jeden kod, który ci pokażę, który pozwala na quasi zwrócenie stołu.
Rzućmy okiem na tę miarę, którą jest Visualized Virtual Table i mamy tutaj wszystkie wirtualne tabele, które mieliśmy na początku. Na przykład chcemy wyświetlić, powiedzmy na pierwszej stronie raportu, plik vTableTopN.
Możesz użyć tej funkcji . W rzeczywistości możesz wziąć tę wirtualną nazwę tabeli (vTableTopN) i pobrać wartości z tej tabeli i połączyć je. Możesz stworzyć coś, co w zasadzie wygląda jak wirtualny stół.
Jeśli zastosujemy tę miarę, musimy wrócić do usługi LuckyTemplates i upuścić ją do miary karty. Zazwyczaj tabela podaje błąd, ale dzięki CONCATENATEX zamieniła tę tabelę w skaler. Widać, że jest dość prymitywny, ale zwraca dokładnie to, czego oczekujemy i robi to w dynamiczny sposób.
Jest to sposób na wepchnięcie tabeli do miary i pokazanie tego w raporcie. To naprawdę pomocna sztuczka debugowania. Zapewni to dobry format wartości karty, który można wykorzystać w raporcie.
Opanuj tabele wirtualne w usłudze LuckyTemplates przy użyciu tabel wirtualnych języka DAX wewnątrz funkcji iteracyjnych w usłudze LuckyTemplates — koncepcje języka DAX
Tabele w usłudze LuckyTemplates: typy i różnice
Wniosek
Mamy nadzieję, że ten samouczek da ci trochę do myślenia w zakresie pracy z wirtualnym stołem usługi LuckyTemplates. Oto kilka dodatkowych wskazówek i trików, które pomogą Ci zrozumieć, co dzieje się w Twoich wirtualnych stołach. Mam nadzieję, że uznałeś to za pomocne.
Odwiedź naszą witrynę internetową , aby uzyskać więcej samouczków usługi LuckyTemplates, i sprawdź poniższe łącza, aby uzyskać więcej powiązanych treści.
Wszystkiego najlepszego!
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.