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ę zagłębić się w coś, co nazywa się analizą kombinatoryczną. Można to określić jako dobieranie i układanie elementów zestawów zgodnie z ustalonymi zasadami. Może to zabrzmieć ezoterycznie, ale w rzeczywistości ma kilka bardzo praktycznych przypadków użycia. Możesz obejrzeć pełny film tego samouczka na dole tego bloga.
W tym samouczku pokażę, jak to zrobić za pomocą dodatku Power Query w usłudze LuckyTemplates.
Spis treści
Przykład analizy kombinatorycznej
W tej przykładowej analizie kombinatorycznej zadanie polegało na tym, że mieliśmy listę sześciu magazynów i musieliśmy wygenerować każdy unikalny zestaw trzech. Brzmi to jak dość prosty problem, ale jest to jeden z tych przypadków, w których język naprawdę ma znaczenie.
Prawidłowa odpowiedź to 216, 120, 56 lub 20. Tak więc, w zależności od tego, jak zdefiniujesz ten unikalny zestaw i określone zasady, możesz pomylić się o czynnik 10, jeśli nie uzyskasz zestawu poprawnie.
I tak, są tu dwa wymiary, które mają znaczenie. Pierwsza to „ czy kolejność ma znaczenie ?” Więc kiedy mówimy o trzech zestawach po trzy, czy ABC jest równoważne z BCA? Więc czy kolejność ma znaczenie? A jeśli kolejność ma znaczenie , mówimy o permutacjach .
Dobrym przykładem permutacji, w których kolejność może mieć znaczenie, jest (mówimy o kontekście magazynu) czas podróży. Bardzo dobrze może się zdarzyć, że jeśli odwiedzisz magazyn A, następnie magazyn B, a następnie magazyn C, czas podróży ze względu na przepływ ruchu z ruchem przeciwnym do ruchu, czas przybycia do każdego magazynu, może być zupełnie inny w zależności od zamówienia w których je odwiedzasz.
Odwrotną stroną tego jest „ kolejność nie ma znaczenia ”, w którym to przypadku mówimy o kombinacjach , a nie permutacjach. Powszechnym przypadkiem użycia jest odległość. Na przykład, w linii prostej, odległość od A do B do C nie będzie się różnić od odległości od B do C do A. Będą one rozpatrywane w kontekście kombinacji.
Kombinacje są uważane za swoje duplikaty. Podczas gdy w kontekście permutacji będą one uważane za unikalne.
A więc, jak widać, zamek szyfrowy naprawdę powinien być zamkiem permutacyjnym, ponieważ w takim przypadku kolejność ma znaczenie, co czyni go permutacją, a nie kombinacją.
Drugim istotnym pytaniem lub wymiarem jest „czy po wybraniu przedmiotu można go wybrać ponownie ?” Na przykład, jeśli wybierzemy A jako nasz pierwszy magazyn, czy możemy ponownie wybrać A, czy też musimy za każdym razem wybierać unikalne elementy?
Termin, którego używamy tutaj, to „ z zamiennikiem ” lub „ bez zamiennika ”. Tak więc, jeśli przedmiot można wybrać ponownie, jest to wymiana, co oznacza, że go wybierasz. I w pewnym sensie wraca do kosza selekcji i ponownie zostaje wybrana. Jeśli odpowiedź brzmi „nie”, to bez wymiany.
I tak widać w tym rozwiązaniu, że permutacje ze zamianą są najmniej restrykcyjne. Więc to ten, który daje nam 216 unikalnych zestawów. A kombinacje bez zamiany są najbardziej restrykcyjne, dając nam 20.
Zamierzamy po prostu użyć tych formuł, aby sprawdzić nasze wyniki dodatku Power Query . Zapamiętamy więc liczby 216, 120, 56 i 20. Przejdźmy teraz do dodatku Power Query i zobaczmy, jak wypadnie ta analiza kombinatoryczna.
Analiza kombinatoryczna: permutacje w dodatku Power Query
W Power Query mam tutaj bardzo prosty przypadek z sześcioma nazwanymi magazynami.
Opracowałem tę funkcję Power Query M, której użyłem do przetwarzania kombinacji i permutacji.
Najpierw rozwinę pierwszy przypadek użycia, czyli permutacje z zamianą , najmniej restrykcyjne z całej gamy. Sposobem na zrobienie tego w dodatku Power Query jest pobranie tej tabeli Warehouses i odwołanie się do niej (w języku DAX używamy CROSSJOIN ).
Nazwę to Per w Rep (permutacje z zamianą).
Istnieje wiele sposobów na wykonanie sprzężenia krzyżowego w dodatku Power Query. Najłatwiejszym sposobem, jaki znalazłem, jest po prostu przejście do Add column , a następnie Custom column . W formule kolumny niestandardowej odwołaj się do tabeli Magazyny .
A kiedy klikniemy OK, przekonamy się, że generuje zagnieżdżoną tabelę.
Następnie rozwijamy to i usuwamy kliknięcie opcji Użyj nazwy oryginalnej kolumny jako prefiksu .
I otrzymujemy tę Lokację.1 , która jest każdą możliwą kombinacją dwóch. Tak więc pierwsze sześć referencji porównuje się z pozostałymi sześcioma kombinacjami. Druga szóstka robi to samo aż do uzyskania 36 różnych zestawów.
Możemy zrobić trzecie, robiąc to ponownie. Idziemy więc Dodaj kolumnę, następnie kolumnę niestandardową, a następnie Magazyny.
I będziemy mieli 216 wierszy jako permutacje z zamianą.
I widzicie stąd, 3 kolumny, 216 rzędów.
Następnym przypadkiem użycia są permutacje bez zamiany . To, o czym tutaj myślimy, to w zasadzie wszystko, co ma powtarzający się element. W tej tabeli przyjrzymy się wierszom od 1 do 8.
Aby to zrobić, przyjrzymy się tej funkcji fxSortAndIsDistinct .
W Edytorze zaawansowanym możesz zobaczyć, że zasadniczo prosi o tabelę, a następnie wykonuje SortLocs . Ale ważną częścią tutaj dla „z zamianą” lub „bez zamiany” jest to, że jest to funkcja IsDistinct . To, co to robi, to po prostu pobranie listy elementów i określenie prawdy lub fałszu, niezależnie od tego, czy jest odrębne, czy też ma jakieś duplikaty na liście elementów.
Więc idziemy tutaj, wybieramy Perm w Rep i naciskamy Invoke .
To da nam te dwie nowe kolumny, SortLocs i IsDistinct . Teraz pamiętaj, że pierwsze osiem rekordów miało duplikaty, a dziewiąty rekord był pierwszym, w którym zobaczyliśmy odrębne pliki . Dlatego dziewiąty wiersz tutaj jest pierwszym, który pojawia się jako prawdziwy.
Jeśli wrócimy myślami do liczb, które mieliśmy w obliczeniach czynnikowych, spodziewamy się 120 rekordów, jeśli usuniemy niewyraźne rekordy. Spróbujmy więc przefiltrować tutaj i usunąć FAŁSZ.
Robiąc to, otrzymujemy tutaj dokładnie 120 wierszy, których oczekujemy. Teraz zmieńmy nazwę na Perm wo Rep (permutacja bez zamiany).
Analiza kombinatoryczna: kombinacje w Power Query
Teraz wykonamy kombinacje z zamianą . Aby to zrobić, po prostu ponownie wykonujemy proces i powtarzamy krok (wywołana funkcja). Więc to w porządku, że mamy duplikaty, ale nie chcemy zestawów, które mają te same elementy , ale w innej kolejności.
W tym przypadku, gdy mówimy o kombinacjach. Jeśli pamiętasz, że ABC jest równe BCA jest równe CAB, wszystkie te elementy są uważane za swoje duplikaty. A sposób, w jaki to określamy, to funkcja Sort ( fxSortAndIsDistinct ).
Jeśli wrócimy do funkcji w Edytorze zaawansowanym, zobaczymy dla tej drugiej kolumny, że wzięliśmy tę listę i posortowaliśmy ją alfabetycznie. Następnie wyodrębniliśmy z tej listy wartości oddzielone przecinkami. Teraz mamy każdy zestaw posortowany alfabetycznie. Znormalizowaliśmy kolejność, aby ułatwić znajdowanie duplikatów.
Teraz, jeśli wrócimy do tej wywołanej funkcji, pamiętaj, że szukamy tutaj 56 rekordów. Bierzemy więc tego rodzaju lokalizację ( SortLocs ) i usuwamy nasze duplikaty .
W ten sposób otrzymujemy 56 wierszy.
I tak, to jest nasz trzeci przypadek użycia. Zmieńmy nazwę tego na CC w Rep (kombinacje z zamianą).
Podsumujmy to, biorąc ponownie tę permutację z tabelą zastępczą (Perm w Rep) i wykonaj ten sam wzór (invoke). Następnie usuniemy duplikaty (kolumna SortLocs), ponieważ jest to kombinacja i kolejność nie ma znaczenia. Jest bez zamiany, więc chcemy również tylko odrębnej listy . Tak więc klikamy FALSE w kolumnie IsDistinct.
W ten sposób otrzymujemy 20 rekordów. A teraz mamy wszystkie cztery przypadki użycia.
Sortowanie kolumn tabeli dat w usłudze LuckyTemplates
Przewodnik dla początkujących po kodzie M w usłudze LuckyTemplates
Konwertowanie funkcji tabeli dat na zapytanie tabelaryczne w usłudze LuckyTemplates
Wniosek
Więc teraz mamy wszystkie cztery przypadki użycia. Możesz naprawdę zobaczyć, jak potężne jest to w zakresie rozwijania analizy kombinatorycznej, która daje kontrolę nad zastępowaniem i odrębnymi elementami.
Ma to zastosowanie nawet w niektórych bardziej złożonych przypadkach, gdy masz częściową wymianę lub być może wybierasz zduplikowany element za pierwszym razem, ale nie za drugim razem. Nadal możesz sobie z tym dobrze poradzić w dodatku Power Query .
Mam nadzieję, że uznałeś to za przydatne. Sprawdź poniższe linki, aby uzyskać więcej treści. Możesz również obejrzeć pełny film z tego samouczka poniżej.
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.