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.
Pokażę ci, jak zamienić kod M dla tabeli dat w zapytanie tabelaryczne. Możesz obejrzeć pełny film tego samouczka na dole tego bloga.
Uznałbym poziom trudności tego samouczka za średniozaawansowany, ponieważ jeśli masz jakiekolwiek doświadczenie z kodami M, łatwo byłoby ci podążać dalej. Jeśli nie masz żadnego doświadczenia w tym zakresie, sugeruję najpierw zapoznać się z kodami M, aby ułatwić sobie zrozumienie przedstawionych tu koncepcji.
Spis treści
Wywołane zapytanie o funkcję i zapytanie o tabelę dat
To jest zapytanie o tabelę dat i wywołane zapytanie o funkcję.
Jeśli spojrzysz na okienko Zastosowane kroki po prawej stronie, jest tylko jeden krok. Pokazuje źródło tego zapytania.
Tak więc, jeśli chcesz opracować kod M dla tej tabeli dat, musisz przełączać się między funkcją a zapytaniem tabelarycznym, aby zobaczyć wszelkie zastosowane zmiany.
Oznacza to, że radzenie sobie z błędami spowodowanymi przez dowolne zmiany jest bardziej skomplikowane. Doprowadzi to do błędu w samym zapytaniu tabeli, a następnie będziesz musiał przeszukać wiersze kodu, aby naprawić błąd.
Na następnej stronie przedstawiono zapytanie dotyczące daty, które zwraca tabelę zamiast funkcji.
Patrząc na Zastosowane kroki po prawej stronie, zobaczysz, że tym razem wymieniono wiele kroków.
Oznacza to, że podczas opracowywania kodu M tabeli dat natychmiast zobaczysz wyniki zmian w tym zapytaniu tabelarycznym.
Co ważniejsze, za każdym razem, gdy zmiana spowoduje błąd, możesz łatwo zidentyfikować krok, który spowodował błąd. Ułatwia to rozwiązanie problemu.
Stosowanie kodu M
Kod M tabeli dat można znaleźć na forum LuckyTemplates. Znajduje się w temacie Rozszerzona tabela danych funkcji Power Query M w prezentacji kodu M.
Kod M znajduje się na samej górze. Zaznaczę cały kod i skopiuję.
Następnie utworzę nowe puste zapytanie.
Otworzę Edytor zaawansowany i wkleję ten kod.
Ponieważ widzę, że nie wykryto żadnych błędów, kliknę Gotowe.
Pozwól mi zmienić nazwę tego i nazwać go Daty.
To zapytanie zwraca funkcję, ale to, czego chcę, to tabela.
Aby wprowadzić niezbędne zmiany, wrócę do Edytora zaawansowanego.
Przekształcanie funkcji w tabelę
Aby to zwróciło tabelę zamiast funkcji, musiałbym wprowadzić pewne zmiany w kodzie M w Edytorze zaawansowanym.
Patrząc na kod M, z łatwością widzę co najmniej dwa środowiska na podstawie liczby instrukcji let.
Każda instrukcja let ma swoją własną klauzulę in, którą można znaleźć na dole.
Możesz pomyśleć, że łatwiej byłoby po prostu usunąć tę ostatnią klauzulę, aby przekształcić ją w tabelę.
Ale nie zamierzam tego robić. Zamiast tego skomentuję to, dodając dwa ukośniki przed ostatnią klauzulą in.
Zamierzam to zrobić również dla pierwszej instrukcji let. To czyni go nieaktywnym.
Poniżej wewnętrznej instrukcji let zamierzam utworzyć sekcję do zadeklarowania moich parametrów, ponieważ nadal muszę przekazać te parametry do tego kodu.
Zamierzam zaznaczyć miejsce, w którym należy zadeklarować te zmienne.
Teraz skopiuję pierwszą zmienną z zewnętrznej instrukcji let i wkleję ją w to miejsce.
W moim zbiorze danych dane historyczne nie sięgają dalej niż do 2017 r. Aby przekazać wartość do zmiennej StartDate, mogę użyć daty wewnętrznej. Wstawię 1 stycznia, potem zakończę wiersz przecinkiem.
Następnie skopiuję i wkleję następną zmienną, którą jest EndDate.
Wiem, że EndDate wymagałoby prognozowania. Dlatego chcę, aby data końcowa zawsze przypadała na koniec przyszłego roku.
Mam już zmienną w moim kodzie M dla CurrentDate, więc zamierzam się do niej odwołać.
Ponownie użyję daty wewnętrznej. Wyodrębnię Date.Year i użyję CurrentDate jako wartości roku +1. Chcę też, żeby data była 31 grudnia.
Ponownie kończę ten wiersz przecinkiem.
Następna zmienna to opcjonalny parametr o nazwie FYStartMonth.
Więc po prostu skopiuję tę nazwę i wkleję ją.
Zauważ, że czerwone podkreślenie pojawiło się pod FYStartMonth poniżej zmiennej, którą właśnie wkleiłem.
To dlatego, że ich imiona pasują. Nie stanowiło to problemu, gdy znajdowali się w oddzielnych środowiskach. Ale nazwy zmiennych w jednym środowisku muszą być unikalne. Oznacza to, że muszę zmienić nazwę nowej zmiennej, którą właśnie wkleiłem.
Zamiast nazywać go FYStartMonth, zamierzam nazwać go FYStartMonthNum.
Nie zamierzam przypisywać wartości tej zmiennej, więc po prostu wstawię wartość null.
Ponieważ zmieniłem nazwę zmiennej, muszę również zmienić nazwę wszędzie tam, gdzie odwołuje się ten parametr.
Wracając do zmiennej, zamknę tę linię, dodając na końcu przecinek.
Kolejnym parametrem jest opcjonalna lista świąt. Zamierzam to również skopiować i wkleić, a także zadeklarować jako zerowe.
To samo dotyczy WDStartNum. Skopiuję go i wkleję, a następnie zadeklaruję jako pusty.
Aby zaznaczyć, gdzie zaczyna się kod tabeli dat, dodam tutaj kolejny komentarz.
Gdy nacisnę Gotowe, zobaczysz, że zapytanie zwraca teraz właściwy typ.
Mam teraz tabelę zamiast funkcji.
W okienku Zastosowane kroki mogę również zobaczyć wszystkie kroki składające się na zapytanie.
Jeśli chcę wprowadzić jakiekolwiek zmiany w tabeli dat, wystarczy użyć wstążki, aby zmodyfikować lub dodać kroki. W przypadku każdej wprowadzonej zmiany natychmiast zobaczę również wyniki w zapytaniu.
Przekształcanie zapytania tabelarycznego z powrotem w funkcję
Powiedzmy, że chcę zamienić zapytanie tabeli dat z powrotem w funkcję. To tylko kwestia ulepszenia kilku rzeczy w kodzie M, aby odwrócić zmiany, które wprowadziłem wcześniej.
Wrócę do Edytora zaawansowanego i usunę ukośniki przed zewnętrzną instrukcją let.
Następnie usunę ukośniki przed instrukcjami in.
Następnie skomentuję blok zmiennych, który dodałem wcześniej. Więc dodam tutaj ukośnik i gwiazdkę.
Następnie gwiazdka i ukośnik po bloku zmiennych.
Pamiętasz, jak wcześniej zmieniłem ten wiersz kodu z powodu FYStartMonthNum?
Skopiuję ten wiersz kodu. Następnie dodam nową linię i wkleję ją.
Wytnę pierwszy (w którym wcześniej dokonałem zmian w nazwie zmiennej).
Następnie na drugim znajdę edytowane nazwy zmiennych.
I zamienię je z powrotem na FYStartMonth.
Po naciśnięciu Gotowe zapytanie w tabeli ponownie zmieni się w funkcję.
Tworzenie tabeli dynamicznych zapytań dotyczących dat w usłudze LuckyTemplates: samouczek edytora zapytań
Tworzenie tabeli dat w usłudze LuckyTemplates
Konfigurowanie dynamicznych dat początkowych i końcowych dla tabel dat w usłudze Power Query
Wniosek
Po raz kolejny pokazałem, jak wygodne są kody M, zwłaszcza w przypadkach takich jak ten, w których przekonwertowaliśmy funkcję na zapytanie tabelaryczne i odwrotnie. Tak długo, jak masz dostęp do kodu M, który mamy na forum LuckyTemplates, możesz go używać w takich scenariuszach w przyszłości.
Możesz także przeglądać inne kody M, których możesz użyć w innych sytuacjach, w prezentacji kodów M na . Jest to społeczność oparta na współpracy, więc możesz przeczytać komentarze dotyczące innych pomysłów naszych ekspertów i członków.
Wszystkiego najlepszego,
Melisa
***** Nauka LuckyTemplates? *****
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.