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.
Chcę dzisiaj spędzić trochę czasu, rozmawiając o tabelach w usłudze LuckyTemplates. Cały czas napotykamy tabele z każdym problemem, ale tak naprawdę nie spędzamy dużo czasu na myśleniu o nich w pojedynkę. Możesz obejrzeć pełny film z tego samouczka na dole tego bloga.
Niedawno pojawił się post członka LuckyTemplates, Ashtona, który zawsze zadaje dobre, prowokujące do myślenia pytania. Jego zapytanie skłoniło mnie do zastanowienia się nad wzorcem, który widuję dość regularnie i którym chciałbym się zająć w tym samouczku.
To nie był błąd, który popełnił, ale częsty błąd. Widzę wiele razy, kiedy ludzie powiedzieliby, że mają problemy z wirtualnym stołem, na przykład, gdy nie jest to wirtualny stół.
Istnieje rzeczywiste rozróżnienie między typami tabel w usłudze LuckyTemplates.
Podałbym analogię, gdyby ktoś powiedział: „Hej, niedawno adoptowałem psa i mam z nim problem i zastanawiam się, czy możesz pomóc” i to nie jest pies, ale wilk. Oba są psami, ale jest kilka dość dużych różnic, które chcesz wziąć pod uwagę.
Tak więc, chociaż wszystkie należą do tej samej rodziny, podobnie jak tabele w usłudze LuckyTemplates, są to ważne rozróżnienia, które naprawdę wpływają na rozwiązanie i sposób korzystania z tych tabel. Dlatego chciałem wrócić do pytania Ashtona, a następnie zagłębić się nieco w różnice między tabelami, które można znaleźć w usłudze LuckyTemplates, i pokazać, jak wpływa to na sposób, w jaki je obsługujesz.
Pytanie było dość proste, ale jest w nim trochę więcej, niż się początkowo wydaje. Miał prosty zestaw danych, który zawierał tylko klientów, rodzaj zakupionych owoców, ilość, a następnie tylko numer indeksu.
Chciał mieć krajalnicę z możliwością wielokrotnego wyboru , aby po wybraniu powiedzmy pomarańczy wyświetlała się lista wszystkich klientów, którzy kupili pomarańcze, ale także pokazywała, co jeszcze kupili.
Jeśli więc wyłączymy ten wybór (pomarańczowy), zobaczymy pełny zestaw danych. Widzimy również, że są to dwaj klienci (Joe i Mary), którzy kupili pomarańcze, ale każdy z nich miał również dodatkowy zakup.
Pierwszą rzeczą, o której wiemy, jest to, że krajalnica do owoców musi być odłączonym stołem krajalnicy. Gdyby to był zwykły krajalnica, uderzyłbyś w pomarańczę i zasadniczo usunąłby ze stołu wszystko oprócz pomarańczy. Wiemy również, ponieważ jest to dynamiczne, że mamy problem z wirtualnym stołem.
Zagłębmy się w to trochę, ale zanim to zrobimy, przyjrzyjmy się różnym typom tabel, które możemy znaleźć w usłudze LuckyTemplates.
Spis treści
Trzy rodzaje tabel w usłudze LuckyTemplates
Istnieją trzy rodzaje tabel, które regularnie znajdujemy. Pierwsza jest najczęstsza i jest to fizyczna tabela, a to są tak naprawdę Twoje podstawowe dane. Za każdym razem, gdy pobierasz dane lub wprowadzasz dane bezpośrednio za pomocą tej opcji lub w dodatku Power Query , wykonujesz odwołanie lub duplikat albo ładujesz dane za pomocą pustego zapytania, takiego jak tabela dat, jest to tabela fizyczna.
Fizyczna tabela nie jest w pełni dynamiczna, ale ma wszystkie inne cechy, które zwiększają rozmiar pliku, ponieważ jest to dane fizyczne. Jest dostępny w dodatku Power Query. Zazwyczaj relacje w modelu danych są budowane za pośrednictwem relacji fizycznych. Nie muszą być, ale zazwyczaj są. Są one używane w przypadku danych podstawowych i można je wizualizować za pomocą widoku danych lub dodatku Power Query.
Fizyczna tabela nie jest w pełni dynamiczna, ale ma wszystkie inne cechy, które zwiększają rozmiar pliku, ponieważ jest to dane fizyczne. Jest dostępny w dodatku Power Query. Zazwyczaj relacje w modelu danych są budowane za pośrednictwem relacji fizycznych. Nie muszą być, ale zazwyczaj są. Są one używane w przypadku danych podstawowych i można je wizualizować za pomocą widoku danych lub dodatku Power Query.
Ta tabela, która często jest mylona z wirtualną tabelą, to ta tabela obliczeniowa lub coś, co możemy również nazwać tabelą wyrażeń języka DAX. Ma to bezpośrednią analogię do kolumn obliczeniowych tworzonych za pomocą wyrażeń języka DAX . Odbywa się to za pomocą karty Modelowanie i opcji Nowa tabela, a następnie wprowadza się wyrażenie języka DAX.
Ta tabela, która często jest mylona z wirtualną tabelą, to ta tabela obliczeniowa lub coś, co możemy również nazwać tabelą wyrażeń języka DAX. Ma to bezpośrednią analogię do kolumn obliczeniowych tworzonych za pomocą wyrażeń języka DAX. Odbywa się to za pomocą karty Modelowanie i opcji Nowa tabela, a następnie wprowadza się wyrażenie języka DAX.
Jak widać z poniższej tabeli porównawczej, obliczona tabela ma zupełnie inny profil niż tabela fizyczna lub wirtualna. Nie jest w pełni dynamiczny.
Należy go odświeżyć, aby zebrać nowe informacje. Zwiększa fizyczny rozmiar pliku. W przeciwieństwie do zwykłej tabeli fizycznej nie jest ona dostępna w dodatku Power Query. Podobnie jak kolumna obliczeniowa nie jest wyświetlana w dodatku Power Query, tabela obliczeniowa również nie jest wyświetlana. Ale ma inne aspekty fizycznego stołu.
Zwykle tabele obliczeniowe służą do obsługi tabel i są częściej używane do debugowania. Dostępne są teraz lepsze narzędzia, takie jak DAX Studio i Edytor tabelaryczny, więc nie są one tak często używane do tego celu. Tę tabelę przeglądasz w widoku danych.
I szczerze mówiąc, podobnie jak w przypadku kolumn obliczeniowych, generalnie jest to coś, od czego należy trzymać się z daleka. Istnieją lepsze sposoby robienia rzeczy niż za pomocą tabel obliczeniowych.
A następnie analogią do miar są prawdziwe wirtualne tabele . Są one tworzone w kontekście miar za pośrednictwem kodu miary DAX. Są w pełni dynamiczne, w przeciwieństwie do pozostałych dwóch typów tabel. Nie zwiększają rozmiaru pliku, ponieważ są dostępne na żądanie. Podobnie jak miary, tabele wirtualne są obliczane na żądanie w pamięci i wszystkie są używane w określonych kontekstach.
Nie są one dostępne w dodatku Power Query. Nie można na nich położyć fizycznego związku. Jeśli łączysz je w swoim modelu danych, robisz to za pomocą relacji wirtualnych, najczęściej za pomocą .
Tabele wirtualne są używane do obliczeń pośrednich w miarach, ponieważ miara nie może zwrócić wartości tabeli, a musi zwrócić wartość skalarną. Tak więc zwykle używasz ich jako tymczasowych obliczeń, na podstawie których generujesz swoje skalery, które są wynikowym produktem twojej miary.
Możesz wizualizować te tabele w narzędziach, takich jak DAX Studio, Edytor tabelaryczny lub Nowa tabela, co ponownie jest prawdopodobnie najmniej pożądanym sposobem, ponieważ zaśmieca model danych wieloma dodatkowymi tabelami, chyba że je usuniesz.
Rozwiązanie pomiaru języka DAX dla wirtualnego stołu
Wracając do pytania Ashtona, patrząc na tabelę, możemy stwierdzić, że jest dynamiczna. Możemy również dokonać wielu wyborów, a to zmienia się w pełni w locie. Dzięki temu wiemy, że jest to stół wirtualny, ponieważ pozostałe dwie (fizyczna i obliczeniowa) nie są w pełni dynamiczne. Wiemy również, że jest to rozłączony stół, o czym wspomniałem na początku.
Użyłem koncepcji Rubber Duck, aby rozwiązać ten problem. W poprzednim samouczku mówiłem o koncepcji gumowego kaczki, która polega na opracowaniu koncepcyjnego rozwiązania problemu, zanim zaczniesz zagłębiać się w konkretny język DAX.
I tak, w przypadku rozwiązania z gumowej kaczki, to, co zrobiłem, to po prostu złożyłem ten odłączony stół krajalnicy. Następnie zebrałem wartość tych krajalnic. Następnie wymyśliłem wirtualny stół, który filtrował klientów według tych, którzy kupili pozycje w odłączonym stole.
Następnie wziąłem tę listę klientów i przefiltrowałem nasz oryginalny zestaw danych według tych klientów, aby znaleźć klientów i zakupy dokonane przez tych klientów, oprócz wartości fragmentatora.
Przyjrzyjmy się konkretnemu pomiarowi, aby zobaczyć, jak to się potoczyło, i rozważmy niektóre kwestie związane z pracą z wirtualnymi stołami.
Pierwszą rzeczą było opracowanie dwóch miar zbiorów dla naszych wartości. Pierwszym z nich jest wartość odłączonego fragmentatora.
Ponieważ w wymaganiu mieliśmy wybór wielokrotny, oznaczało to, że nie mogliśmy po prostu użyć . Więc to, co zrobiłem, to użycie funkcji do przechwycenia potencjalnie jednego lub więcej wyborów w tym odłączonym krajalniku. W przypadku klientów, ponieważ będziemy mieć jednego klienta w każdym ocenianym wierszu, możemy użyć WYBRANEJ WARTOŚCI.
Następną rzeczą, którą zrobiłem, była zmienna wirtualnej tabeli ( VAR Buyers ), która zaczyna się od . Następnie przechodzi do filtrowania klientów według tego, czy dokonali zakupu owoców, który mieścił się w naszych wartościach odłączonego krajalnika.
Możemy to sprawdzić, wykonując zapytanie w języku DAX. Możemy to zrobić w DAX Studio lub w Edytorze tabelarycznym. Weźmy więc tutaj naszą wirtualną miarę tabeli i skopiujmy ją do Edytora tabelarycznego. Upewnimy się, że daje nam wartości, których oczekujemy, czyli Joe i Mary.
Zapytania DAX zawsze zwracają tabele i zawsze zaczynały się od EVALUATE, więc dodajemy tutaj EVALUATE. Jednak nic nie otrzymujemy w wyniku. Dzieje się tak, ponieważ wybrana zmienna zbioru owoców odłączania ( SelDisconnFruit ) nie ma informacji o krajarce. To jest wyrwane z kontekstu.
Tak więc sposobem na przetestowanie tego jest sztuczne ustawienie tej wartości fragmentatora. Zastąpimy tutaj SelDisconnFruit małym stolikiem. Wpisz Orange (wartość tego fragmentatora) między nawiasy klamrowe . A teraz otrzymujemy wynik tutaj, czyli Joe i Mary. Dzięki temu wirtualny stół działa dokładnie tak, jak myśleliśmy.
Możemy więc wrócić teraz do naszego wyrażenia miary. Jednym z wyzwań stołów wirtualnych jest to, że można je łatwo tworzyć w obrębie miary . Ale nie możesz zwrócić wirtualnej tabeli jako wyniku miary . Musimy więc zwrócić wartość skalarną, ale to oddaje odpowiedni aspekt wirtualnej tabeli.
Tak więc tutaj mamy wirtualną tabelę, która mówi nam, którzy klienci kupili owoce, które były w krajalnicy wartości. Możemy ustawić inną zmienną ( VAR BuyerIn ), która mówi, że jeśli wybrany klient był w tabeli tego kupującego, to otrzymuje jedynkę . A jeśli nie, dostaje zero .
Następnie bierzemy wyniki tego i umieszczamy w okienku filtrowania. Mówimy, że miara kluczowych nabywców wynosi jeden i będą to klienci, którzy kupili, w tym przypadku, pomarańcze.
Robiąc to, filtrujemy naszą oryginalną tabelę danych do odpowiednich rekordów. Możesz zobaczyć, że teraz tworzy tę wirtualną tabelę i odpowiednio filtruje na podstawie każdego wyboru.
Tabele wirtualne wewnątrz funkcji iteracyjnych w usłudze LuckyTemplates — koncepcje języka DAX
Tworzenie relacji wirtualnych w usłudze LuckyTemplates przy użyciu funkcji TREATAS
Jak korzystać z funkcji COUNTROWS języka DAX w tabelach wirtualnych
Wniosek
To jest większość tego, co chciałem dzisiaj omówić. Jest to dość prosty przykład wirtualnej tabeli, ale z naciskiem na różnicę między tabelami fizycznymi, tabelami obliczeniowymi i tabelami wirtualnymi.
Istnieje wiele interesujących kwestii do ponownego omówienia w odniesieniu do tabel wirtualnych, szczególnie w przypadku debugowania miar tabel wirtualnych. Wrócę do tego w ciągu najbliższych kilku tygodni, ale na razie to wszystko w tym samouczku.
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.