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 dzisiejszym samouczku pokażę, jak można zautomatyzować proces sortowania jednej kolumny po drugiej w usługach analitycznych LuckyTemplates i SSAS lub SQL Server. Możesz obejrzeć pełny film z tego samouczka na dole tego bloga.
W tym przykładzie mamy tabelę Daty z kilkoma kolumnami. Niektóre kolumny to część całkowita, którą zamierzamy ukryć; a niektóre kolumny to część łańcuchowa, którą pokażemy użytkownikowi końcowemu.
Mamy więc kolumny Rok kalendarzowy, Rok kalendarzowy Miesiąc i Miesiąc. To, co chcemy zrobić, to zautomatyzować sortowanie tych trzech kolumn według ich części całkowitej. Posortuję rok kalendarzowy według numeru roku kalendarzowego, miesiąc roku kalendarzowego według numeru miesiąca roku kalendarzowego, a także miesiąc według numeru miesiąca.
Ale nie zrobimy tego jeden po drugim. Uruchomimy skrypt, który automatycznie posortuje to dla tej konkretnej tabeli. Jeśli masz wiele kolumn dla wielu tabel, możesz użyć tego skryptu w tych zestawach tabel.
Będziemy używać Edytora tabelarycznego do pisania tego kodu C#, ale na razie Edytor tabelaryczny nie ma technologii IntelliSense dla języka C#. Aby to ułatwić, użyjemy Visual Studio (VS), w którym mamy język IntelliSense dla C# i możesz również użyć kodu VS.
Spis treści
Sortowanie kolumn w LuckyTemplates i SSAS przy użyciu C#
Najpierw musimy utworzyć nowy projekt w Visual Studio, którym będzie aplikacja konsolowa (.Net Framework) dla języka C#. Wybierzmy to kliknięcie Dalej.
Następnie możemy nadać projektowi dowolną nazwę. Zamierzam nazwać to SortBy i kliknąć Utwórz.
Teraz widzisz, że mamy kod. Gdy kod zadziała, po prostu skopiujemy go i wkleimy w Edytorze tabelarycznym.
Ale aby kod działał w Visual Studio, musimy ustawić odwołanie do biblioteki. W tym celu możemy po prostu kliknąć Referencje i wybrać opcję Zarządzaj pakietami NuGet w opcji przeglądarki.
Wewnątrz opcji przeglądania musimy napisać usługi analizy . A następnie w dostępnych opcjach musimy wybrać drugą i kliknąć Instaluj. Rozpocznie się instalacja, a jej ukończenie zajmie kilka sekund.
Następnie musimy napisać w kodzie, using Microsoft.AnalysisServices.Tabular , a następnie napisać średnik. Zamierzamy utworzyć obiekt serwera, więc możemy po prostu napisać Server , a nazwą obiektu serwera będzie sam Server , a my napiszemy New Server .
Zasadniczo tworzymy nowy obiekt w pamięci. Aby połączyć ten serwer z plikiem LuckyTemplates, użyjemy metody obiektu serwera. Napiszmy więc server.Connect , a tutaj podajemy numer portu, na którym nasłuchuje usługa AnalysisServices w usłudze LuckyTemplates.
Aby znaleźć ten numer portu, przechodzimy do Zewnętrznych narzędzi, klikamy DAX Studio , aw dolnej części znajdziemy lokalnego hosta. Jest to numer kodu, na podstawie którego usługi analizy serwera SQL, które mamy w usłudze LuckyTemplates, nasłuchują zmian, które wysyłamy za pośrednictwem usługi LuckyTemplates lub dowolnego innego narzędzia zewnętrznego.
Serwer to jedno, ale serwer może mieć również wiele modeli w przypadku SSAS. Ale teraz w usłudze LuckyTemplates mamy tylko jeden model. Więc zadeklarujemy ten model. Piszemy tutaj Model jest równy (=) server.Databases i uzyskamy dostęp do pierwszej bazy danych na tym serwerze, więc napiszemy .Model .
Teraz sprawdźmy, czy ta część kodu działa, czy nie. Aby to zrobić, po prostu wydrukujemy listę wszystkich tabel, które mamy w tym modelu danych. Wpiszemy więc tutaj dla każdego (Table t in model.Tables) , otwórz nawias i naciśnij enter.
Następnie wpisujemy Console.WriteLine (t.Name) . Aby upewnić się, że okno nie zamknie się automatycznie po wydrukowaniu nazw tabel, zapiszemy Console.ReadLine , otwieramy i zamykamy nawiasy i średnik. Teraz wszystko, co musimy zrobić, to kliknąć opcję Start i poczekać na jej wykonanie.
Jak widać, jesteśmy w stanie wydrukować nazwy tabel, które mamy w modelu danych. Mamy daty, produkt, klienta i sklep. To potwierdza, że konfiguracja, którą stworzyliśmy, działa.
Teraz możemy właściwie przejść do sedna kodu i zacząć tworzyć kod, który pomoże nam posortować tę kolumnę według odpowiednika liczb całkowitych.
Pozbądźmy się wszystkiego, co stworzyliśmy z części ForEach . Zamierzamy zachować serwer i model bez zmian. Zadeklarujmy zmienną, która będzie przechowywać nazwę tabeli, na której chcemy wykonać iterację. Nazwę go jako DatesTable , a nazwa tabeli będzie w zasadzie Dates .
Następnie będziemy mieć foreach var t w model.Tables , a następnie użyjemy klauzuli where , abyśmy mogli powiedzieć, gdzie T idzie do t.Nazwa powinna być równa DatesTable . Jeśli obecnie iterujemy na DatesTable, zamierzamy zainicjować kolejną pętlę na wszystkich kolumnach tej DatesTable. W tym celu możemy napisać foreach var c w t.Columns .
Aby sprawdzić, czy iterujemy tylko po DatesTable i mamy dostęp do wszystkich kolumn DatesTable, możemy po prostu wydrukować Console.WriteLine i powiemy c.Name .
Jeśli nacisnę F5, zobaczysz, że uzyskujemy dostęp do kolumn.
Teraz możemy przejść dalej i napisać więcej kodu.
Stworzymy listę krotek, która będzie zawierała trzy kolumny więcej. Jedna z kolumn będzie kolumną docelową. Druga kolumna będzie kolumną, według której chcemy posortować kolumnę docelową, a trzecia kolumna będzie po prostu zawierała prawdę lub fałsz, niezależnie od tego, czy chcemy ukryć kolumnę, według której faktycznie sortujemy.
Załóżmy, że chcemy posortować kolumnę Rok kalendarzowy według numeru roku kalendarzowego. Pierwsza kolumna będzie zawierała Rok kalendarzowy, druga kolumna będzie Numer roku kalendarzowego, a trzecia kolumna zdecyduje, czy chcemy ukryć kolumnę Numer roku kalendarzowego po zakończeniu sortowania, czy nie.
W tym celu wróćmy do Visual Studio, gdzie utworzymy nową zmienną. Możesz go nazwać, jak chcesz. W tym przykładzie nazwę to colOperations . Następnie napiszemy new , a następnie utworzymy listę i napiszemy typ kolumn (string, string i bool). Następnie tworzymy krotki.
Zasadniczo tworzymy po prostu listę trzech kolumn, a dla trzech kolumn udostępniamy dwa wiersze. Teraz wewnątrz naszej pętli foreach zainicjujemy pętlę for . Zasadniczo mówimy, że deklarujemy zmienną zaczynającą się od i w każdej iteracji. Jeśli i jest mniejsze niż colOperations.Count, po prostu zwiększ ten .
Następnie napiszemy instrukcję JEŻELI . c.Name należy do nazwy kolumny, w której aktualnie się znajdujemy. Następnie mamy colOperations i . I zasadniczo pozwala nam uzyskać dostęp do jednego konkretnego wiersza . A kiedy piszemy .Item1 , jesteśmy w stanie uzyskać dostęp do pierwszej kolumny, drugiej kolumny lub trzeciej kolumny.
Najpierw użyjemy kolumny Item1 . Jeśli to prawda, po prostu piszemy, że c.SortByColumn powinno być równe t.Columns . Pamiętaj, że t jest obiektem tabeli. Następnie uzyskujemy dostęp do kolumn z tej konkretnej tabeli. Chcemy colOperations , wiersz, w którym aktualnie jesteśmy w operacjach kolumnowych, a kolumna jest w zasadzie obiektem Item2 .
Na koniec, aby ukryć tę konkretną kolumnę, według której stosujemy sortowanie, piszemy ostatnią linię kodu.
Więc teraz, gdy napisaliśmy główny kod, który zamierzamy wykonać w oparciu o nasz model tabelaryczny, możemy po prostu skopiować kod z var colOperations i przenieść go do Edytora tabelarycznego, a następnie wykonamy ten sam kod.
Sortowanie kolumn w LuckyTemplates i SSAS za pomocą edytora tabelarycznego
Nie będziemy używać serwera ani obiektu modelu, ponieważ w tle Edytor tabelaryczny automatycznie wie, z którym modelem usługi LuckyTemplates lub modelem usług analitycznych ma się połączyć. Nie musimy więc używać tych zmiennych, ponieważ jest to już zadanie Edytora tabelarycznego , aby określić, w jaki sposób chce się połączyć z tymi modelami.
Po powrocie do usługi LuckyTemplates uruchomimy Edytor tabelaryczny 3 lub Edytor tabelaryczny 2. Możesz użyć dowolnego z nich. W takim przypadku przejdźmy do Edytora tabelarycznego 3.
Przechodzimy do zakładki Plik, klikamy Nowy kod C# i zamykamy opcję Właściwości. Następnie możemy wkleić kod tutaj. Jedyną rzeczą, której musimy się upewnić, jest to, że zamiast używać zmiennej modelu, należy użyć obiektu modelu . Użyjmy więc dużej litery M i wykonajmy ten kod.
Teraz, gdy skrypt został pomyślnie wykonany i pokazuje również trzy zmiany modelu, zamierzamy zatwierdzić zmiany z powrotem do modelu danych. Zapiszemy wszystko, co zastosowaliśmy do tych kolumn.
Po powrocie do usługi LuckyTemplates możesz zobaczyć, że numer miesiąca jest ukryty. Jeśli kliknę kolumnę Miesiąc i przejdę do Narzędzia kolumn , a następnie do Sortuj według kolumny , zobaczysz, że ta konkretna kolumna została posortowana według numeru miesiąca. To samo dotyczy numeru miesiąca roku kalendarzowego.
Rok kalendarzowy jest sortowany samodzielnie, ponieważ nie mamy tej kolumny w tym kodzie C#. To, co możemy zrobić, to ponownie uruchomić Edytor tabelaryczny i utworzyć kolejną krotkę. A potem jeszcze raz wykonujemy ten skrypt.
Edytor tabelaryczny LuckyTemplates: wersja 3 Recenzja i samouczek
Edytor tabelaryczny usługi LuckyTemplates 3: automatyzacja za pomocą skryptu
Kodowanie DAX w edytorze tabelarycznym 3
Wniosek
Tak łatwo można zautomatyzować proces sortowania jednej kolumny po drugiej w i SSAS. To był bardzo prosty przykład wykonania tej operacji w tabeli Daty. Ale możesz wzbogacić tę listę, dodając więcej kolumn, a następnie wyszukać inną tabelę.
W ten sposób możesz skrócić czas, który musisz poświęcić na sortowanie tych kolumn dla tych samych modeli, które będziesz tworzyć wielokrotnie.
Mam nadzieję, że okazało się to pomocne. Jeśli masz jakieś pytania, daj mi znać w sekcji komentarzy.
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.