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.
![](https://excelbi.pl/wp-content/uploads/2020/03/Eksport_R_P_1-1024x491.png)
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.
![](https://excelbi.pl/wp-content/uploads/2020/03/Eksport_R_P_2-1024x495.png)
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.
![](https://excelbi.pl/wp-content/uploads/2020/03/Eksport_R_P_3-1024x550.png)
Od teraz możesz napisać swój własny kod. Zaczniemy od ustawienia lokalizacji, do której chcemy wyeksportować plik komendą setwd.
![](https://excelbi.pl/wp-content/uploads/2020/03/Eksport_R_P_4-1024x635.png)
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.
![](https://excelbi.pl/wp-content/uploads/2020/03/Eksport_R_P_5-1024x638.png)
Poniżej zrzut z Excela po otwarciu plików csv.
![](https://excelbi.pl/wp-content/uploads/2020/03/Eksport_R_P_6-1024x695.png)
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.
![](https://excelbi.pl/wp-content/uploads/2020/03/Eksport_R_P_7.png)
W skrypcie R w Power BI wykonaj funkcję write.xlsx. Pamiętaj, by w nawiasie z nazwą dopisać odpowiedni format pliku!
![](https://excelbi.pl/wp-content/uploads/2020/03/Eksport_R_P_8.png)
Po kliknięciu OK w Twojej lokalizacji pojawi się plik Excela.
![](https://excelbi.pl/wp-content/uploads/2020/03/Eksport_R_P_9.png)
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.