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.
W tym samouczku dowiesz się, jak funkcja działa w języku DAX przy użyciu okienka chronometrażu serwera i jego planu zapytań.
Funkcji CROSSJOIN można użyć do stworzenia iloczynu kartezjańskiego dwóch tabel. Produkt kartezjański to zbiór wszystkich możliwych kombinacji wierszy z dwóch lub więcej tabel.
Poniższy kod języka DAX zostanie użyty w tym samouczku.
Jak widać, funkcja CROSSJOIN daje w wyniku kombinację Marki i Koloru produktu, nawet jeśli niektóre z tych kombinacji nie istnieją w tabeli faktów . Daje to tabelę zawierającą łącznie 176 wierszy.
Na karcie Czasy serwera pierwsze zapytanie pobiera markę z tabeli Produkty, podczas gdy drugie zapytanie pobiera kolor.
W Logicznym planie zapytań pierwsza linia zwraca wynik w postaci tabeli. Drugi i trzeci wiersz w tabeli produktów skanuje odpowiednio kolor i markę.
Gdy dane zostaną odebrane, Formuła Engine iteruje po tabeli i tworzy kombinację obu kolumn. Funkcja CrossApply w wierszu 2 odpowiada funkcji CROSSJOIN.
Spis treści
Filtruj wyniki CROSSJOIN w języku DAX
Możesz użyć funkcji , aby przefiltrować wyniki CROSSJOIN. Na przykład możesz go użyć do pokazania tylko produktów, które są czerwone.
Pamiętaj jednak, że nie możesz umieścić funkcji CROSSJOIN w argumencie FILTR .
Teraz, jeśli uruchomisz ten kod i sprawdzisz kartę Czasy serwera, zobaczysz, że kontekst filtru nie pojawia się jako klauzula WHERE w zapytaniu.
Funkcja CROSSJOIN może zostać rozwiązana tylko przez silnik formuł . Kod nie działa, ponieważ znajduje się pomiędzy FILTER i , które są funkcjami, które mogą być rozwiązane tylko przez Storage Engine . W ten sposób CROSSJOIN spowodował przerwanie pętli między tymi dwiema funkcjami.
Dlatego musisz umieścić funkcję FILTER w argumencie CROSSJOIN, aby filtr działał.
Teraz, jeśli uruchomisz ten kod i sprawdzisz kartę Czasy serwera, zobaczysz, że funkcja FILTER jest teraz reprezentowana przez klauzulę WHERE.
W planie kwerend logicznych widać, że zamiast operatora filtru używany jest filtr VertiPaq .
Wynika to z faktu, że nowy warunek filtru w kodzie można przekazać do silnika pamięci masowej. Po zwróceniu wyniku argument CROSSJOIN jest następnie wykonywany wewnątrz silnika formuł.
Operator IN
Możesz także użyć operatora zamiast znaku równości w argumencie FILTR.
Operatora IN można użyć w argumencie wyrażenia funkcji FILTER w celu filtrowania tabeli na podstawie tego, czy wartość jest zawarta na liście wartości, czy w tabeli.
W przypadku użycia kombinacji FILTER – IN silnik języka DAX musi wykonać filtr IsEmpty , który potwierdza, czy kolor produktu jest czerwony, czy czarny.
Dodaj kolumnę Total Sales w wyniku CROSSJOIN DAX
Inne funkcje mogą być również używane razem z CROSSJOIN.
Możesz użyć funkcji , aby dodać kolejną kolumnę do tabeli, a następnie wpisać argument informacji, które chcesz wyświetlić.
W tym przykładzie dodajmy kolumnę Total Sales.
Po uruchomieniu kodu wyniki nadal będą zwracać 176 wierszy. Jednak niektóre kombinacje będą miały puste wartości w kolumnie Total Sales. Dzieje się tak, ponieważ te kombinacje nie mają odpowiedniego wiersza w tabeli Sales.
Na karcie Chronometraż serwera kod najpierw wybiera markę i kolor. Następnie sumuje iloczyn ilości i ceny sprzedaży netto.
W takim przypadku aparat języka DAX najpierw pobiera wszystkie kombinacje marki i koloru, które istnieją w tabeli Produkty, wraz z odpowiadającymi im wierszami w tabeli Sprzedaż. Następnie oddzielnie pobiera kolumny marki i koloru.
W planie zapytań fizycznych można zobaczyć dwie pamięci podręczne danych; jeden dla marki, a drugi dla koloru. Gdy pomnożysz ich łączne rekordy, otrzymasz 176 wierszy.
Następnie przeprowadzane jest wyszukiwanie tych 176 wierszy, aby sprawdzić, czy mają one odpowiednią wartość w tabeli Sales. Jak widać, tylko 111 wierszy zawiera wartości. Pozostałe 65 wierszy zwróci puste miejsca.
Co więcej, jeśli dodasz więcej kolumn w argumencie CROSSJOIN, wynik zwróci również więcej wierszy.
Wniosek
Funkcja DAX CROSSJOIN generuje nową tabelę, łącząc wiersze z jednej tabeli z wierszami z innej. Ta funkcja jest podobna do klauzuli CROSS JOIN w SQL i może być używana do tworzenia bardziej złożonych zapytań w modelu danych.
Może wygenerować listę wszystkich możliwych kombinacji wartości z dwóch lub więcej tabel. Można go również użyć do szybkiego utworzenia nowej tabeli z dużą liczbą wierszy, co może być przydatne do analizy danych, testowania lub porównywania wydajności.
Ogólnie rzecz biorąc, funkcja CROSSJOIN jest przydatnym narzędziem w scenariuszach, w których trzeba połączyć dane z wielu tabel lub wygenerować listę wszystkich możliwych kombinacji.
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.