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 blogu omówimy instrukcję CASE , której można użyć do obsługi wielu operacji logicznych. Omówimy również funkcję ISNULL SQL, która pozwoli ci zwrócić wartość zastępczą w przypadku, gdy istnieją wyrażenia, które mają wartość NULL .
Instrukcja CASE i funkcja ISNULL są bardzo pomocne w pracy z kodami wymagającymi wielu operacji logicznych oraz do szybkiego zastępowania wyrażeń wartościami stałymi lub określonymi.
Instrukcja CASE w SQL jest podobna do instrukcji IF ELSE . Jednak najprawdopodobniej jest ona podobna do instrukcji SWITCH , której używamy w języku DAX . Z drugiej strony funkcja ISNULL służy do zastępowania wartości NULL określoną wartością, której chcesz użyć.
Spis treści
Korzystanie z instrukcji CASE w języku SQL
Załóżmy, że mamy kolumny ProductName i Sales Amount .
Następnie chcemy utworzyć dodatkową kolumnę o nazwie Description .
Chcemy również dodać logiczne stwierdzenia, które będą wyświetlać „ Tanie ”, jeśli Kwota sprzedaży jest mniejsza lub równa 5 , a następnie „ Nie tak tanio ” dla wartości od 6 do 100 . Jeśli wartość jest większa niż sto, wyświetli się „ Drogi ”.
W tym przykładzie użyliśmy instrukcji SELECT , aby wybrać kolumnę, którą chcemy wyświetlić. Następnie mamy instrukcję CASE , która zawiera operacje logiczne, o których wspominaliśmy wcześniej.
Używając instrukcji CASE , instrukcje WHEN i THEN są zawsze używane do wskazania operacji logicznych, które chcemy zaimplementować w wybranej kolumnie. Instrukcja ELSE służy do ustawiania wartości domyślnej, jeśli zestaw operacji logicznych nie został spełniony.
Na końcu instrukcji CASE mamy END AS i obok nazwę kolumny . Spowoduje to utworzenie nowej kolumny o nazwie Opis z wartościami opartymi na operacjach logicznych, które dodaliśmy w instrukcji CASE .
Wykorzystanie funkcji SQL ISNULL
Funkcja ISNULL służy do sprawdzania, czy w wybranej kolumnie występują wartości NULL i zastępowania ich dowolną określoną wartością. Teraz wyobraźmy sobie, że mamy następujące kolumny z wartościami NULL .
W powyższym przykładzie wszystkie wartości NULL są zastępowane wartościami „ Nieznane ”. Poniższe wiersze kodu są używane do tworzenia tego przykładu.
Używając funkcji SQL ISNULL , należy zacząć od wybrania kolumny MiddleName za pomocą instrukcji SELECT .
Następnie należy użyć funkcji ISNULL , aby sprawdzić kolumnę MiddleName określoną w nawiasach i zastąpić w niej dowolną wartość NULL wartością „ Unknown ”.
Funkcja AS służy do tworzenia nowej kolumny, którą w tym przypadku jest MiddleName_New .
Zwróć uwagę, że funkcja ISNULL zastąpi wartości NULL tylko wtedy, gdy określona wartość nie jest równa NULL . Następnie zwróci tę samą wartość z kolumny, którą określiłeś w funkcji ISNULL .
Następnie użyję instrukcji CASE i funkcji ISNULL w SSMS , aby zobaczyć, jak to faktycznie działa.
Instrukcja CASE w SSMS
Zacznijmy od wybrania kolumny FirstName z Person.Person . Zwróć uwagę, że w tym przykładzie nie trzeba wybierać kolumny. To jest tylko w celach informacyjnych.
Po wywołaniu tej kolumny utwórzmy kolumnę, która będzie wyświetlać wartości niezależnie od tego, czy imię to Kim , czy nie, używając instrukcji CASE . Aby to zrobić, po prostu postępuj zgodnie z poniższym przykładem.
W powyższym przykładowym kodzie dodaliśmy warunek za pomocą instrukcji CASE , gdzie jeśli imię jest równe „ Kim ”, wyświetli się „ Tak ”, a jeśli nie, zamiast tego wyświetli się „ Nie ”.
W tym przykładzie utworzyłem również nową kolumnę o nazwie „ IsKim ”, używając funkcji END AS . Zobacz przykład poniżej, aby zobaczyć wynik.
Teraz spójrzmy na inny przykład użycia instrukcji CASE poprzez zastosowanie pewnych warunków do kolumny TaxAmt z tabeli Sales.SalesOrderHeader .
Najpierw przenieśmy 100 najlepszych kolumn z Sales.SalesOrderHeader przy użyciu następującego wiersza kodu i wyszukajmy kolumnę TaxAmt .
Następnie zacznijmy stosować warunki dla kolumny TaxAmt za pomocą instrukcji CASE , korzystając z poniższego przykładu.
Podobnie jak w poprzednim przykładzie, zaczęliśmy od wybrania kolumny, do której chcemy zastosować nasze warunki — w tym przypadku jest to kolumna TaxAmt .
Następnie w instrukcji CASE dodaliśmy warunki, w których jeśli wartość TaxAmt jest mniejsza lub równa 500, zostanie wyświetlona wartość „ Doskonały ”. Jeśli wartość TaxAmt jest mniejsza lub równa 2000 , zostanie wyświetlona wartość „ OK ”.
Dodatkowo, jeśli warunki nie zostały spełnione, zostanie wyświetlona wartość „ Not Good ” . Na końcu zestawienia utworzyłem nową kolumnę o nazwie TaxClass .
W ten sposób wykorzystujemy instrukcję CASE w SQL . Pamiętaj, że możesz ustawić tyle warunków, ile chcesz. Pamiętaj tylko, aby użyć instrukcji WHEN i THEN oraz funkcji END AS , aby wygenerować nową kolumnę, w której zostaną wyświetlone wyniki.
ISNULL Funkcja SQL w SSMS
W tym przykładzie użyję tej samej tabeli z poprzedniego przykładu. Następnie zademonstruję, jak można użyć tej funkcji do zastąpienia wartości NULL w kolumnie CurrencyRateID .
Po wybraniu tabeli z powyższego przykładu możemy zobaczyć wartości NULL pod kolumną CurrencyRateID . Teraz chcę zastąpić te wartości NULL wartościami „ 1 ”. Aby to zrobić, zapoznaj się z poniższym przykładem.
Aby zmienić wartości NULL w określonej kolumnie, najpierw musimy wybrać kolumnę, która ma wartości NULL. W tym przypadku jest to CurrencyRateID . Następnie użyjemy funkcji ISNULL i wybierzemy kolumnę, która zostanie sprawdzona przez funkcję ISNULL , czyli CurrencyRateID .
Musimy również zadeklarować wartość zastępczą, której chcemy użyć – w tym przykładzie użyłem ' 1 '. Na koniec dodamy funkcję AS , aby utworzyć nową kolumnę o nazwie NewRate .
W rezultacie wszystkie wartości NULL zostały zastąpione przez „ 1 ” w kolumnie NewRate , a te, które nie miały wartości NULL , pozostały takie same. Ponadto możesz również zmienić wartość NULL za pomocą kolumny. Możesz to zrobić, postępując zgodnie z poniższym przykładem.
Używając tej samej składni z poprzedniego przykładu, właśnie dodaliśmy SalesOrderID obok CurrencyRateID jako nasze odwołanie przed funkcją ISNULL . Następnie zmieniliśmy wartość zastępczą na SalesOrderID . Ta instrukcja po prostu sprawdzi wartości NULL w CurrencyRateID i zastąpi je wartościami z kolumny SalesOrderID .
Wniosek
Podsumowując, nauczyłeś się używać instrukcji CASE i funkcji ISNULL wraz z właściwą składnią w SQL . Dowiedziałeś się również, że w instrukcji CASE możesz umieścić dowolną liczbę warunków logicznych . Zwróć tylko uwagę, że instrukcja CASE jest podobna do instrukcji SWITCH lub IF ELSE .
Oprócz funkcji ISNULL dowiedziałeś się, że istnieją różne sposoby zastępowania wartości NULL podczas korzystania z tej funkcji, czyli za pomocą wartości stałej lub kolumny.
Wszystkiego najlepszego,
Hafiz
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.