Jeden z czytelników bloga zapytał, jak dane z Power Query wyeksportować do pliku CSV. Póki co nie ma na to jednego przycisku, którym zapisalibyśmy tylko dane wyjściowe już po transformacjach. Jest na to inny sposób: wykorzystaj R w Power Query po stronie Power BI Desktop! Pokażę Ci, jak zapisać dane za pomocą R do formatów .csv oraz .xlsx. Aby korzystać ze skryptów R, musisz mieć zainstalowany na komputerze R. Najnowszą wersję R możesz pobrać ze strony R Project.
O przygotowanych danych
Dane do przykładu pochodzą ze zbiorów Kaggle i dotyczą parametrów i ocen win ze strony WineEnthusiast. Cały zbiór liczy prawie 130 tysięcy rekordów, ale załóżmy, że do dalszych analiz będą potrzebne wina tylko z kilku krajów, lat i typów, w związku z czym zbiór zawęzi się do nieco ponad 20 tysięcy obserwacji.
Włącz skrypt R
Aby móc pracować wykorzystując skrypt R, w Edytorze Power Query przejdź do zakładki Przekształć > Skrypty > Uruchom skrypt języka R. Gdy wejdziesz w skrypt R, pojawi się konsola, w której możesz pisać swój kod.
Po otwarciu skryptu R dostajesz informację, że jeśli chcesz odwoływać się w kodzie do swojego zbioru danych, użyj nazwy ‘dataset’. Będzie to potrzebne przy wywoływaniu funkcji.
Od teraz możesz napisać swój własny kod. Zaczniemy od ustawienia lokalizacji, do której chcemy wyeksportować plik komendą setwd.
Pamiętaj, by wstawić podwójne ukośniki, jako że pojedynczy backslash w R to znak specjalny!
Eksport danych do formatu csv
Zapisanie pliku csv nie wymaga żadnego dodatkowego pakietu i można to zrobić jedną linijką kodu. Istnieje sporo funkcji, umożliwiających zapisanie pliku tekstowego, szczególnie csv. Podstawową jest write.table. Jako pierwszy argument podajemy nazwę zbioru danych, który chcemy zapisać, a następnie w nawiasie nazwę pliku (z rozszerzeniem), jaki chcemy utworzyć. Taka sama składnia obowiązuje w funkcjach write.csv oraz write.csv2. Same funkcje różnią się ustawieniami wyjściowymi: write.csv wykorzystuje przecinek jako separator kolumn i kropkę jako separator dziesiętny, a write.csv2 średnik jako separator kolumn i przecinek jako separator dziesiętny.
Poniżej zrzut z Excela po otwarciu plików csv.
Eksport danych do formatu xlsx
Import bezpośrednio do formatu Excela wymaga już zainstalowania pakietu. Jednym z popularniejszych jest xlsx, ale przy instalacji często wyskakuje przy nim błąd związany z Javą. Aby tego uniknąć, można skorzystać z pakietu openxlsx. Funkcja do eksportu nazywa się write.xlsx i działa analogicznie jak funkcje do eksportu w formacie csv. Na początku zainstaluj w R pakiet openxlsx komendą install.packages(„openxlsx”) w konsoli R lub w R Studio.
W skrypcie R w Power BI wykonaj funkcję write.xlsx. Pamiętaj, by w nawiasie z nazwą dopisać odpowiedni format pliku!
Po kliknięciu OK w Twojej lokalizacji pojawi się plik Excela.
Coraz więcej możliwości
R był pierwszym dodatkowym polem skryptu, który można włączyć w Power Query. Nie tak dawno do grona obsługiwanych języków dołączył Python. Znasz Pythona? Super! Możesz tak samo pisać w nim skrypty i wykonywać je w Power Query. Powodzenia!
a jak zrobić, żeby w edytorze power querry pojawiła się taka opcja jak skrypt R?
Hej Dawid, ta opcja jest dostępna, ale tylko w Power Query po stronie Power BI. Dodatkowo w opcjach globalnych Power BI potrzebujesz zdefiniować, gdzie zainstalowany jest R.
czyli rozumiem, że jak ma raport w Excelu + PQ to nie dam rady go w żaden sposób wyeksportować jako CSV? 🙁
Niestety nie. Jedyne pomysły: zapisać plik Excel jako CSV (pod warunkiem, że wierszy jest mniej niż 1 milion rekordów) lub skopiować zapytania z Excel Power Query do Power BI Power Query i wtedy skorzystać z opcji R.