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.
Chciałbym przedstawić najlepsze praktyki, które przyjąłem przygotowując raporty LuckyTemplates. W ciągu ostatnich kilku lat zużyłem wiele zasobów internetowych dotyczących ładowania i przekształcania danych, które odegrały kluczową rolę w mojej podróży, ale szybko zostałem przytłoczony treścią, więc skończyłem na robieniu własnych notatek. Możesz obejrzeć pełny film z tego samouczka na dole tego bloga.
Nie jest to bynajmniej wyczerpująca lista ani najlepsze praktyki – to tylko niektóre z tych, które włączyłem do własnego rozwoju. Ponadto najlepsze praktyki zawsze ewoluują wraz z upływem czasu, gdy nowe i ulepszone funkcje są wprowadzane do aplikacji LuckyTemplates i prezentowane przez społeczność LuckyTemplates.
Chciałbym przedstawić pierwszy z czterech filarów rozwoju LuckyTemplates. Cztery filary to ładowanie i przekształcanie danych , modelowanie danych , obliczenia w języku DAX oraz raporty i wizualizacje . W tym poście na blogu zajmiemy się konfiguracją przedrozwojową i pierwszym filarem.
Spis treści
Wyłączanie automatycznej daty/czasu
Zdecydowanie zaleca się wyłączenie funkcji automatycznej daty i godziny w usłudze . Możesz to zrobić na dwa sposoby.
Możesz to zrobić globalnie dla wszystkich plików, wykonując następujące czynności:
Można go również wyłączyć dla bieżącego pliku, zmieniając jego ustawienie.
Wyłączanie relacji automatycznego wykrywania
Zdecydowanie zaleca się również wyłączenie relacji automatycznego wykrywania. Możesz przejść do Plik i wyświetlić Opcje i ustawienia, aby wyłączyć automatyczne wykrywanie nowych relacji po załadowaniu danych.
Interakcja z wizualizacjami w raportach usługi LuckyTemplates
Następną rzeczą, o której chcę porozmawiać, są dwa sposoby interakcji z wizualizacjami w raportach usługi LuckyTemplates. Interakcje te można filtrować krzyżowo lub wyróżniać krzyżowo .
Podświetlanie krzyżowe jest domyślnie włączone w usłudze LuckyTemplates. Możesz to zmienić, przechodząc do Plik, a następnie Opcje i ustawienia. W przypadku bieżącego pliku w sekcji ustawień raportu możesz zmienić interakcję wizualną z podświetlania krzyżowego na filtrowanie krzyżowe.
Rzućmy okiem na nasz raport. Jak widać, usługa LuckyTemplates domyślnie używa wyróżniania krzyżowego w powiązanych wizualizacjach. Jeśli kliknę jeden kanał z lewego wykresu słupkowego, zobaczysz, że wybrana część jest podświetlona ciemnym kolorem, podczas gdy niewybrana część pozostaje w jasnym kolorze na drugim wykresie słupkowym.
Możesz zobaczyć, że pełny kształt nie zmienia się na wykresie i widzisz tylko podświetlone fragmenty. Możesz to zmienić w ustawieniach raportu i zmienić domyślną interakcję wizualną z podświetlania krzyżowego na filtrowanie krzyżowe.
Gdy to zrobisz, zobaczysz, że kształt powiązanego wykresu słupkowego będzie się zmieniał za każdym razem, gdy dokonasz wyboru lub grupy wyborów. Jest to dobra praktyka, aby wejść.
Oddzielanie zbioru danych od raportu
Następną rzeczą, o której chcę porozmawiać, jest oddzielenie opracowywania zestawu danych od opracowywania raportów. W tym miejscu można opublikować gruby plik zestawu danych jako samodzielny zestaw danych, który nie ma elementów wizualnych, oraz opracować plik cienkiego raportu, który będzie korzystał z tych opublikowanych zestawów danych.
Jedną z zalet oddzielnego publikowania zestawów danych jest możliwość korzystania z procesu zatwierdzania w usłudze LuckyTemplates w celu promowania i certyfikowania zestawów danych. Podczas opracowywania nowego raportu idealną praktyką jest wybieranie zatwierdzonego zestawu danych, najlepiej certyfikowanego.
Tworzenie dedykowanej tabeli dat
Upewnij się, że raport zawiera dedykowaną tabelę Daty. Możesz skorzystać z dostępnej na forum LuckyTemplates. Możesz skopiować i wkleić kod M do pustego zapytania.
Drugą rzeczą do zrobienia, gdy masz dedykowaną tabelę dat, jest oznaczenie jej jako takiej. Umożliwi to wykorzystanie go przez usługę LuckyTemplates do obliczeń analizy czasowej.
Inne przypomnienia dotyczące tabeli dat
Zawsze upewnij się, że tabela danych jest ciągła i że jest jeden wiersz dziennie. Sprawdź również, czy całkowicie zakrywa krawędzie tabeli faktów.
Dodaj także pełne lata do tabeli Daty. Dobrym pomysłem jest również dodanie kolejnego przyszłego roku do tabeli Daty, aby umożliwić wszelkie przyszłe lub prognozowane obliczenia analizy czasowej.
Jeśli w tabeli Daty masz więcej dni, niż chcesz pokazać w raporcie, możesz kontrolować, co jest pokazywane we fragmentatorach, używając kolumny IsAfterToday lub kolumn przesunięcia, które są dostępne w okienku filtrowania.
Zadawanie pytań dotyczących raportu
Następną rzeczą, o której chcę porozmawiać, jest to, czy w ogóle powinieneś robić raport. Podczas wykonywania tej czynności sprawdź, czy istnieje istniejący raport, którego możesz użyć do spełnienia swoich potrzeb. Jeśli nie ma raportu, czy istnieje istniejący model danych, którego można użyć do zaspokojenia potrzeb? Czy istnieje istniejący zestaw danych, którego możesz użyć, czy naprawdę musisz zacząć od zera?
Przemieszczanie i odwoływanie się do danych
Następną rzeczą do omówienia podczas ładowania danych jest przemieszczanie i odwoływanie się do danych. Gdy ładujesz płaską tabelę danych, możesz mieć fakty i wymiary w tej samej tabeli, jak w pliku programu Excel. Gdy wykonasz ładowanie i przeniesiesz je do sekcji zapytania przemieszczania i zmienisz jego nazwę, możesz odznaczyć opcję Włącz ładowanie .
Następnym krokiem jest utworzenie odwołania do tej tabeli dla każdego wymiaru faktu i wyszukiwania oraz odpowiednia zmiana nazw tabel. Edytuj każde odwołanie, zachowaj tylko potrzebne kolumny i usuń duplikaty.
Uporządkuj swój model danych i umieść go we własnej grupie. Zawsze mam w moich modelach danych grupę o nazwie Data Model, która zawiera wszystkie tabele, których zamierzam użyć w moich wizualizacjach.
Zmniejszenie obciążenia danych
Następną rzeczą do omówienia jest wydajność narzędzia podczas ładowania danych. Jedną z największych rzeczy, która wpływa na wydajność, jest ilość danych, więc staraj się maksymalnie zmniejszyć ilość danych do załadowania .
Postępuj zgodnie z tym aksjomatem:
Jeśli go nie potrzebujesz, nie pobieraj go.
O wiele łatwiej jest dodawać nowe rzeczy do raportu niż usuwać rzeczy z naszego raportu. Ponadto, gdy umieścisz zbyt wiele rzeczy w raporcie, zapłacisz karę za wydajność, której nie musisz doświadczać.
Najlepiej filtruj w źródle. Jeśli nie możesz tego zrobić w źródle, użyj strzałki listy rozwijanej automatycznego filtrowania w zapytaniu uzupełniającym, aby przefiltrować pola, które Cię interesują.
Również w źródle możesz również zmniejszyć liczbę wyświetlanych kolumn, korzystając z listy rozwijanej Wybierz kolumny i wybierając tylko te kolumny, które Cię interesują.
Możesz użyć opcji Wybierz kolumny lub Usuń kolumny . Zalecam używanie opcji Wybierz kolumny jako najlepszej praktyki, ponieważ łatwo jest do niej wrócić.
Jeśli później zmienisz zdanie, możesz to szybko zrobić za pomocą interfejsu użytkownika, zamiast przechodzić do zaawansowanego edytora i bezpośrednio edytować kod M.
Składanie zapytań
Składanie zapytań to kolejna próba ładowania danych przez usługę LuckyTemplates polegająca na połączeniu kilku etapów selekcji i przekształcania danych w jedno zapytanie źródła danych.
Aby określić, czy zapytanie jest składane, kliknij prawym przyciskiem myszy zastosowane kroki zapytania. Możesz sprawdzić, czy zapytanie natywne jest wyszarzone.
Jeśli jest wyszarzona, zapytanie nie jest składane. Jeśli nie jest wyszarzone, zapytanie można złożyć.
Przejdźmy do opcji Transform data , a następnie Power Query . W tej tabeli, jeśli kliknę prawym przyciskiem myszy krok nawigacji, zobaczę, że Wyświetl zapytanie natywne nie jest wyszarzone, więc mogę je wybrać.
Zobaczymy tutaj prostą instrukcję SQL select.
Jeśli przejdziemy do następnego kroku po zakończeniu filtrowania i przejrzymy zapytanie natywne, zobaczymy, że zapytanie zostało nieco zmienione, a na dole tego zapytania znajduje się klauzula „where”.
Jeśli przejdziemy do trzeciego kroku i klikniemy na nim prawym przyciskiem myszy, zobaczymy, że zapytanie natywne nie jest wyszarzone, więc możemy je wybrać jeszcze raz.
Po wybraniu możemy zobaczyć, że istnieje jeszcze większe zwinięcie trzech zapytań w jedno. To jest LuckyTemplates mówiące, że najlepszym sposobem na wprowadzenie danych do modelu jest wykonanie pracy przez źródło, a nie przeze mnie.
Używanie źródeł danych do składania zapytań
Źródła danych, które zwykle mogą być używane ze zwijaniem zapytań, to standardowe obiekty w relacyjnych bazach danych, takie jak tabele i widoki.
Niestandardowe zapytania SQL do relacyjnych baz danych nie mogą używać składania zapytań. Pliki płaskie i dane internetowe również nie mogą być składane.
Niektóre z przekształceń, których można użyć ze zwijaniem zapytań, to filtrowanie wierszy , usuwanie kolumn , zmienianie nazw kolumn i łączenie z innymi zapytaniami z tego samego źródła danych.
Niektóre przekształcenia, których nie można używać ze zwijaniem zapytań, obejmują dodawanie kolumn indeksu , zmianę typów danych kolumn oraz scalanie lub dołączanie zapytań z różnych źródeł danych .
Wybór odpowiedniego trybu łączności
Następną rzeczą do zrobienia, aby poprawić wydajność, jest wybór odpowiedniego trybu łączności. Tryb importu jest trybem domyślnym i należy go używać zawsze, gdy jest to możliwe, ponieważ zapewnia najlepszą wydajność raportu.
Tryb zapytań bezpośrednich może być używany, jeśli potrzebne są aktualne dane, ale należy pamiętać, że może to mieć i prawdopodobnie będzie miało negatywny wpływ na wydajność.
Wreszcie tryb połączenia na żywo jest dostępny podczas uzyskiwania dostępu do hurtowni danych, takich jak wielowymiarowe kostki SSAS.
Lokalizowanie przekształceń
Następną rzeczą, o której chcę porozmawiać, jest lokalizacja, w której mają zostać przeprowadzone te przekształcenia. Najlepszym miejscem do ich wykonania jest źródło . Jeśli nie możesz ich wykonać w źródle, wykonaj je w power query . Jeśli nie możesz ich wykonać w Power Query, wykonaj je w DAX .
Wykonuj transformacje danych tak daleko, jak to możliwe, i tak daleko w dół, jak to konieczne.
Jeśli możesz zrobić coś w zapytaniu o moc, prawdopodobnie powinieneś.
Ponownie, jeśli nie jest to coś dynamicznego w kontekście sesji raportu, rozważ zrobienie tego w Power Query, aby uprościć język DAX i zwiększyć wydajność raportu.
Jeśli chodzi o kształt tabel, staraj się, aby tabele faktów były długie i cienkie , a tabele wymiarów krótkie i szerokie .
Najlepsze praktyki dotyczące nazewnictwa i typów danych
Używaj spójnego schematu nazewnictwa i wielkości liter, który jest łatwy do zrozumienia dla użytkowników raportów. W razie potrzeby zmień nazwy tabel i zapytań, aby zachować zgodność ze standardami nazewnictwa i wielkości liter w raporcie.
Jeśli to konieczne, zmień nazwy kolumn , aby były zgodne ze standardami nazewnictwa i wielkości liter, a także zmień nazwy kroków zapytania zasilania, aby kroki były samoopisujące, ponieważ możesz nie być osobą, która obsługuje raport.
Usługa LuckyTemplates doskonale radzi sobie z przypisywaniem prawidłowych typów danych podczas importowania danych, ale czasami konieczne są również pewne korekty. Należy upewnić się, że kolumny w różnych tabelach będą używane jako kolumny łączące między dwiema tabelami o tym samym typie danych.
Upewnij się, że wszystkie kolumny daty to Data, a nie Tekst. Podziel kolumny daty/czasu na osobne kolumny Daty i osobne kolumny Czasu.
Na koniec ponownie sprawdź typy danych . Zanim klikniesz Zamknij i Zastosuj w Power Query, wyrób sobie praktykę , aby zawsze ponownie sprawdzać typy danych, ponieważ niektóre przekształcenia mogą dyskretnie przełączać typy danych na tekst.
Pozyskiwanie danych ze stałą szczegółowością
Ostatnią rzeczą do omówienia jest ziarnistość. Podczas procesu ładowania i przekształcania danych należy dążyć do pozyskiwania danych z zachowaniem spójnej szczegółowości. Gdy łączysz różne poziomy szczegółowości w swoim rozwiązaniu, użyj Power Query (najlepiej) lub języka DAX, aby odpowiednio przydzielić dane referencyjne.
Na przykład, jeśli Twoje główne dane dotyczące sprzedaży są na poziomie dziennym, ich szczegółowość jest dzienna. Jeśli Twoje dane referencyjne dotyczące budżetu są na poziomie miesięcznym, ich szczegółowość jest miesięczna. Oto przykład formuły języka DAX alokacji budżetu, którą można przejrzeć podczas dostosowywania poziomu szczegółowości.
Wniosek
Mam nadzieję, że ten samouczek dotyczący ładowania i przekształcania danych okazał się przydatny. Jeśli tak, nie zapomnij zasubskrybować kanału YouTube LuckyTemplates, aby otrzymywać powiadomienia o wszelkich nowych treściach.
Greg
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.