W poprzednim artykule zapoczątkowaliśmy temat automatyzacji zadań z wykorzystaniem możliwości PS IMAGO PRO. Program pozwala użytkownikowi na zapisanie, a następnie uruchomienie wszystkich procedur związanych z pobraniem i przygotowaniem danych, analizą, tworzeniem obiektów wynikowych, aktualizacją raportu oraz publikacją wyników. W tym tekście skoncentrujemy się na pierwszym elemencie procesu automatyzacji – wykorzystaniu syntaxu.
Język poleceń jest integralną częścią programu PS IMAGO PRO. Praktycznie każda uruchomiona poprzez menu użytkownika procedura w programie (istnieją jednak pewne wyjątki od tej zasady), tworzy w tle polecenie, które jest wykonywane przez silnik analityczny programu. Warto pamiętać, że PS IMAGO PRO na bieżąco zapisuje nasze aktywności w specjalnym pliku dziennika, o czym pisaliśmy w jednym z wcześniejszych tekstów.
Plik dziennika to jednak ostateczność w sytuacji, w której utraciliśmy nasze polecenia lub z różnych przyczyn nie zarchiwizowaliśmy ich. Powszechnie wykorzystywaną w bieżącej pracy opcją jest zapisywanie skryptów wykonywanych procedur do dziennika poleceń w tym samym aktywnym pliku raportu, w którym program umieszcza wyniki naszych analiz. Zapis poleceń do dziennika w raporcie jest domyślnym ustawieniem programu PS IMAGO PRO. Niewątpliwą zaletą takiego działania jest dokumentacja wszystkich aktywności, które wykonujemy podczas pracy z programem. Dzięki temu możemy łatwo odtworzyć ustawienia wykonywanej analizy, w tym zastosowane przekształcenia danych, wykorzystany zestaw zmiennych albo przeprowadzone testy statystyczne. To rozwiązanie bywa jednak problematyczne. Niestety zapis każdego działania do okna raportu sprawia, że po pewnym czasie raport staje się bardzo długi i zupełnie nieczytelny. Przez to odnalezienie w nim pożądanej wersji wykonanej analizy może okazać się sporym wyzwaniem. Z drugiej strony, osoby pracujące w PS IMAGO PRO szybko przyzwyczajają się do tego trybu pracy i korzystają z zapisu tylko wtedy gdy jest on rzeczywiście potrzebny. Opisywane ustawienie można zmienić zaznaczając albo dezaktywując stosowną opcję w menu Edycja -> Opcje -> Raporty -> Komendy w dzienniku.
Edytor poleceń PS IMAGO PRO
Zapis i dokumentacja wykonanych działań to jedno, jednak z naszego punktu widzenia kluczowa jest możliwość uruchomienia zapisanych analiz. Okno raportu służy jedynie do dokumentacji prac. Do uruchamiania procedur zapisanych w syntaksie służy Edytor poleceń. Można go uruchomić na dwa sposoby. Po pierwsze, nowe okno możemy uruchomić za pomocą menu Plik -> Nowy -> Komendy. W podobny sposób, ale za pomocą menu Otwórz możemy otworzyć zapisane wcześniej w pliku polecenia. Drugi sposób to wykorzystanie opcji wklejania poleceń dostępnej w praktycznie każdym oknie dialogowych PS IMAGO PRO. Za jego pomocą możemy wkleić wybrane polecenie do aktywnego okna edytora albo w przypadku braku takiego, program otworzy nowe okno i do niego wklei żądane polecenie. Do tej możliwości wrócimy w dalszej części tekstu.
Przyjrzyjmy się jak zbudowane jest okno kreatora poleceń PS IMAGO PRO. Zapisałem w nim pierwszy skrypt… typowy i znany każdemu, kto zetknął się z jakimkolwiek podręcznikiem z szeroko pojętego obszaru informatyki.
Rysunek 1. Okno edytora poleceń
Okno edytora podzielone jest na trzy obszary (domyślny układ edytora możemy zmodyfikować za pomocą menu Widok). Po lewej stronie zlokalizowany jest Panel nawigacyjny. Znajduje się w nim lista komend, które wpisaliśmy w edytorze. Pozwala ona szybko odszukać wybraną procedurę a po kliknięciu przejść do niej bezpośrednio w kodzie. Centralną pozycję zajmuje edytor kodu – w nim zlokalizowane są wszystkie wpisane przez nas polecenia, tutaj też możemy je edytować, wpisać własne, a po zaznaczeniu także uruchomić. Wreszcie w dolnej części okna znajduje się Panel błędów, w którym PS IMAGO PRO raportuje błędy w trakcie wykonywania kodu. Po kliknięciu w błąd zostaniemy automatycznie przeniesieni do odpowiedniego miejsca w kodzie (błędu lub wybranej procedury). W przypadku dużych syntaxów jest to bardzo użyteczna opcja, ponieważ nie musimy ręcznie przewijać poleceń.
Górną część edytora poleceń zajmuje pasek menu, który umożliwia dostęp do wszystkich procedur programu PS IMAGO PRO oraz oferuje dodatkowe funkcjonalności, właściwe dla edytora poleceń, zlokalizowane w menu Uruchom i Ustawienia.
Kolejnym elementem okna edytora jest pasek narzędzi. Tutaj również pojawiają się dodatkowe opcje a najważniejszą z nich jest zielony przycisk strzałki Uruchom zaznaczone, który służy do uruchamiania zaznaczonych poleceń.
Wklejanie i edycja poleceń
Kod poleceń może być napisany w całości ręcznie, jednak często nie jest to najbardziej efektywne rozwiązanie. W praktyce nawet najbardziej zaawansowani użytkownicy często wykorzystują możliwość przygotowania poleceń czy analiz za pomocą interfejsu a następnie wklejenia ich do edytora poleceń. Jest to również najlepsze wyjście dla początkujących użytkowników – znacznie przyspiesza pisanie kodu i ułatwia uczenie się podstawowych procedur. Optymalna praca w syntaxie to w znacznej mierze umiejętne wykorzystanie opcji wklejania poleceń, następnie ich edycji i - wreszcie ręczne napisanie bardziej zaawansowanych opcji języka.
Wklejanie poleceń jest niezwykle proste. Przyjrzyjmy się znanej każdemu użytkownikowi procedurze Analiza -> Opis statystyczny -> Częstości. Za jej pomocą przygotujemy tabelę z rozkładem częstości zmiennej m2_wiek. W celu zilustrowania polecenia z menu Statystyki zamówiłem dodatkowo dominantę oraz medianę, a z menu Wykresy wykres słupkowy z opcją prezentacji procentów.
Rysunek 2. Kreator procedury częstości
Zamiast tradycyjnego klikania przycisku Ok w celu uruchomienia procedury skorzystajmy teraz z przycisku Wklej. W efekcie procedura nie zostanie wykonana, lecz PS IMAGO PRO otworzy nowe okno, do którego zostanie wklejone zaprojektowane przez nas polecenie. Polecenie może zostać również wklejone do aktywnego okna edytora poleceń, jeżeli akurat mamy takie otworzone. W moim przypadku nowe polecenie zostało dopisane do wcześniejszego przykładu.
Rysunek 3. Składnia polecenia procedury Częstości
Przeanalizujmy na tym przykładzie nasze polecenie. Po zapisie pliku poleceń PS IMAGO PRO automatycznie dopisuje na początku pliku linijkę z oznaczeniem kodowania: w moim przypadku jest to UTF-8. Następne jest wprowadzone wcześniej polecenie wyświetlające komunikat „Witaj świecie” (polecenie ECHO). Wreszcie w 4. linijce rozpoczyna się zaprojektowane i wklejone przeze mnie polecenie Częstości. W Panelu Nawigacji zostały zamieszczone wszystkie 3 procedury.
Podczas tworzenia poleceń musimy przestrzegać kilku zasad:
- Każde polecenie zaczyna się słowem wywołującym konkretną procedurę (w naszym przypadku jest to FREQUENCIES) Aby znaleźć konkretne polecenie możemy posiłkować się zasobami Pomocy, lub po prostu wkleić wybraną procedurę.
- Każde polecenie kończy się kropką. Brak kropki spowoduje błąd.
- Pomiędzy poszczególnymi elementami komendy nie może być pustej linii.
- Z drugiej strony poszczególnych elementów polecenia nie trzeba pisać od nowej linijki. Mimo, że jest to skrajnie nieczytelne rozwiązanie, całe polecenie może być zapisane w 1. linijce.
- Wielkość liter w poleceniu nie ma znaczenia.
- Programiści wykorzystują wcięcia poszczególnych elementów procedury. Zwiększa to czytelność kodu, ale ich brak nie jest błędem. Możemy stosować spacje lub tabulatory.
Komenda może składać się z wielu różnych elementów. Jak widać, PS IMAGO PRO dla zwiększenia czytelności koloruje części składowe polecenia. Jak wspomniałem, polecenie musi zaczynać się od nazwy komendy i kończyć kropką. Nazwa procedury kolorowana jest na granatowo. Komendy mogą również zawierać opcje, które odpowiadają za ustawienia procedury. Opcje zaczynają się od znaku „/” i są kolorowane na zielono. Aby wykorzystać konkretne możliwości dawane przez opcje PS IMAGO PRO wymaga podania słów kluczowych. Są one oznaczane kolorem czerwonym. W naszej komendzie nie ma takiej konieczności, lecz czasami do słów kluczowych wymagane jest dopisanie dodatkowych wartości, które są zaznaczane kolorem żółtym.
Przeanalizujmy więc nasze polecenie i zobaczmy, jak ustawienia z menu znalazły odzwierciedlenie w skrypcie. Procedura częstości (FREQUENCIES) wymaga podania zmiennych. Wybrałem zmienną m2_wiek, która pojawia się po słowie kluczowym VARIABLES=. W kolejnym kroku zażądaliśmy od PS IMAGO PRO dodania do raportu tabeli z Medianą i Dominantą. To ustawienie powoduje dopisanie do komendy opcji /STATISTICS= po którym następuje lista wybranych statystyk opisowych (MEDIAN MODE). Z kolejnego okna zamówiliśmy wykres słupkowy, na którym mają zostać zaprezentowane procenty. To kolejna opcja /BARCHART i słowo kluczowe PERCENT. Opcja /ORDER odpowiada za sposób prezentacji wyników w przypadku analizy wielu zmiennych.
Po wklejeniu procedury do edytora poleceń możliwa jest modyfikacja wszystkich jej elementów: dodawanie zmiennych, modyfikacja opcji, zmiana parametrów itp. Co ciekawe, często modyfikacje procedur za pomocą syntaxu pozwalają na uzyskanie dodatkowych opcji, niedostępnych z poziomu kreatora analizy. Tutaj zachęcam do samodzielnych testów i poszukiwań w zasobach pomocy, z których można skorzystać klikają przycisk [Pomoc] w kreatorze procedury. Pomoc można również uruchomić wpisując nazwę procedury w syntaxie i wciskając przycisk F1.
PS IMAGO PRO nie wymaga od nas perfekcyjnej znajomości składni każdego polecenia. Oprócz kolorowania składni bardzo przydatną funkcjonalnością są podpowiedzi w postaci menu kontekstowego. Gdy chcemy dopisać nową opcję do procedury, program automatycznie podpowiada nam listę dostępnych możliwości. Wystarczy tylko przejść do nowej linii w komendzie (ważne żeby pozostawać w obrębie procedury, czyli wstawić nową linię pomiędzy nazwą polecenia a kropką) i wpisać znak „/”. Podobnie po wskazaniu wybranej opcji program zaproponuje nam listę pasujących słów kluczowych. Na początku mogą nam one niewiele mówić, jednak wystarczy odrobina wprawy i wykorzystanie kontekstowych podpowiedzi stanie się intuicyjne.
Rysunek 4. Kontekstowe podpowiedzi edytora poleceń
Podobnie sprawa ma się podczas ręcznego wpisywania poleceń. PS IMAGO PRO już po wpisaniu pierwszej litery próbuje nam podpowiedzieć procedury. Dopóki nie zamkniemy polecania kropką, będzie się ona świecić na czerwono, zarówno w kodzie, jak i w panelu nawigacyjnym. Pamiętajmy, że brak kropki to jeden z najczęściej popełnianych błędów podczas pracy z językiem poleceń PS IMAGO PRO :).
Rysunek 5. Niezakończone polecenie program oznacza czerwonym kolorem
Na zakończenie tej części artykułu warto dodać jeszcze jedną uwagę. Wielu analityków korzysta z bardzo wygodnej opcji przywoływania ostatnio uruchomionych procedur (domyślnie ikonka z listą znajduje się obok drukarki na pasku narzędzi). Generalnie, w trakcie trwania sesji, PS IMAGO PRO dla wygody użytkownika automatycznie zapamiętuje wykonane procedury oraz ich ustawienia. Należy jednak pamiętać, że procedury uruchamianie za pomocą syntaxu nie zostaną zapamiętane przez interface użytkownika. Podobnie zmodyfikowanych ustawień również nie będziemy w stanie przywołać za pomocą kreatora. Po przygotowaniu poleceń całość należy zapisać za pomocą menu użytkownika Plik -> Zapisz, oczywiście jeżeli chcemy z nich skorzystać w przyszłości.
Przygotowanie przykładowego raportu
Spróbujmy więc napisać nasz pierwszy syntax w oparciu o zdobyte wcześniej informacje. W tej części tekstu zaprezentuję dodatkowo kilka nowych możliwości. Podstawą do dalszych prac będą wyniki badania satysfakcji wśród mieszkańców pewnej miejscowości, którye stanowiły podstawę kilku tekstów zaprezentowanych na naszym blogu (Analiza wyników badania satysfakcji mieszkańców - część 1, część 2). W tym i kolejnych tekstach omówimy przygotowanie danych, analiz, i obiektów wynikowych, a następnie opracowanie i publikację całego raportu. Oczywiście wszystko za pomocą narzędzi automatyzacyjnych dostępnych w PS IMAGO PRO.
Na potrzeby podsumowania zaprezentujemy polecenia generujące następujące obiekty
- Analiza częstości zmiennych metryczkowych (płeć, wiek)
- Ogólna ocena jakości życia – częstości, statystyki, wykres słupkowy
- Statystyki opisowe dla ocen poszczególnych obszarów
- Wykres pierścieniowy z ocenami NPS
Wygląda na dużo pracy… a to dopiero podsumowanie. A co jeżeli będziemy musieli kilkakrotnie powtórzyć naszą analizę? Warto zabrać się do działania.
Rysunek 6. Rozkłady częstości zmiennych metryczkowych
Zacznijmy od początku. Dobrą praktyką podczas pisania skryptów jest wstawianie komentarzy w kodzie. Ich celem może być uporządkowanie kodu, przekazanie podpowiedzi odnośnie edycji lub celów wykonania danej analizy, albo wyłączenie jakieś procedury z wykonywania. Aby PS IMAGO PRO nie próbowało odczytać komentarza jako polecenia i wykonać go (co często skończyłoby się błędem) musimy oznaczyć taki fragment kodu gwiazdką (znak *) na początku linijki i tradycyjnie zakończyć całość kropką. Komentarz może zawierać kilka linijek – od gwiazdki do kropki lub pustej linii. Treść komentarza ma domyślnie kolor szary. Co by się stało, gdybyśmy skasowali teraz kropkę na początku trzeciej linijki?
W czwartej linijce znajduje się kod znanej już analizy Częstości. W porównaniu z opisywanym wcześniej kodem wygląda on dość minimalistycznie. Przy tej okazji warto zwrócić uwagę na kolejną zasadę pracy z syntaxem. Każda procedura posiada zestaw wymaganych parametrów, które musimy ustawić, aby polecenie się wykonało oraz ustawienia opcjonalne, które możemy pominąć. W przypadku analizy Częstości konieczne jest jedynie wskazanie zmiennych. Zredukowany kod jest dużo bardziej przejrzysty i łatwiejszy do napisania. Opcjonalnych ustawień nie musimy więc uwzględniać w kodzie (przynamniej jeżeli nie chcemy ich modyfikować), procedura wykona się wówczas z domyślnymi ustawieniami. Tutaj również zalecam samodzielne eksperymentowanie.
Przeanalizujmy teraz całą zawartość naszego skryptu.
Rysunek 7. Pełny zestaw poleceń raportu
Ogólna ocena jakości życia jest zmienną wyrażoną na skali od 1 (Bardzo źle) do 7 (Bardzo dobrze). Obok dominanty i mediany zamówiłem również średnią oraz wykres z procentowym rozkładem odpowiedzi. Za przygotowanie opisanego zestawienia odpowiada polecenie FREQUENCIES zamieszczone w linijce 7.
Następnie (linijka 12) zamówiłem zestawienie średnich dla zmiennych opisujących satysfakcję z poszczególnych obszarów życia w danej miejscowości. Są to zmienne ilościowe, wyrażone na skali od 0 (Zupełny brak satysfakcji) do 100 (Pełna satysfakcja). Statystyki zostaną zaprezentowane w 1 tabeli, więc dla klarowności posortowałem je malejąco według średniej. Takie zestawienie można również uzyskać za pomocą menu użytkownika Analiza -> Statystyki opisowe.
Wreszcie ostatnią zamówioną analizą (linijka 19) jest wykres pierścieniowy dostępny w zakładce Predictive Solutions -> Wykresy. Na wykresie zostanie zaprezentowana zmienna z kategoriami NPS: krytycy, neutralni i promotorzy (zmienna: nps_kat), w letniej palecie kolorystycznej. Na wykresie zostaną zaprezentowane opcjonalne etykiety oraz legenda.
Uruchamianie procedur zapisanych w języku poleceń
Najszybszą i najczęściej wykorzystywaną metodą jest uruchamianie zaznaczonego fragmentu kodu. Należy zaznaczyć cały kod lub jego fragment (za pomocą myszki lub skrótu CTRL+A, a następnie kliknąć zielony przycisk Uruchom zaznaczenie. Opcjonalnie kod można również uruchomić za pomocą skrótu CTRL+R. Warto pamiętać, że nie trzeba zaznaczać całej procedury, często wystarczy jedynie 1 linijka w obrębie danego polecenia.
W przypadku uruchamiania długiego i rozbudowanego zestawu poleceń zaznaczanie i uruchamianie może nie być najwygodniejszą formą pracy. Wykorzystanie skrótów klawiszowych niesie także ryzyko przypadkowego skasowania fragmentu lub nawet całego kodu. Uruchamiając gotowy syntax, można więc skorzystać z opcji Uruchom -> Wszystko.
PS IMAGO PRO umożliwia również krokowe uruchamianie poleceń. Wybór tego podejścia powoduje wykonywanie wszystkich zapisanych w kodzie procedur, ale każdorazowo PS IMAGO PRO oczekuje kliknięcia przycisku kontynuacji.
Takie rozwiązanie może być bardzo użyteczne w pewnych sytuacjach. Pozwala prześledzić skrypt w celu znalezienia błędów lub zlokalizować niepożądane działanie procedur. Wprawdzie PS IMAGO PRO raportuje błędy, jednak nierzadko przyczyna nieprawidłowego wykonywania procedury leży dużo wcześniej i nie jest do końca oczywista. Przykładowo: wykres nie chce się wygenerować, ponieważ 10 linijek wcześniej nie zadziałał skrypt agregacji, a jeszcze 15 linijek wcześniej zrobiliśmy literówkę w poleceniu tworzącym zmienną pomocniczą… itd.
Krokowe uruchamianie poleceń sprawdza się również podczas wykonywania starych skryptów, szczególnie jeśli nie mamy pewności, co miały robić i jak działać. Ostrożność zalecana jest także w przypadku kodów otrzymanych od innego użytkownika. Skrypty syntaxu mogą nieodwracalnie przekształcić zmienne, lub skasować jedyną kopię zbioru danych.
Przycisk Kontynuuj uruchamianie poleceń jest zlokalizowany na pasku zadań, obok zielonej strzałki i ma postać czerwonej kulki z niebieską strzałką. Po kliknięciu PS IMAGO PRO wykona daną procedurę i zatrzyma się na następnej, ponownie oczekując na reakcję użytkownika. Kontynuację wykonywania kodu można również przeprowadzić poprzez menu Uruchom -> Kontynuuj.
Rysunek 8. Pasek narzędzi z aktywnym przyciskiem kontynuacji
Wreszcie, edytor poleceń PS IMAGO PRO pozwala również na krokowe uruchamianie większych fragmentów kodu z zastosowaniem specjalnych pułapek. Pułapki blokują wykonywanie kodu w danym miejscu i do kontynuacji wymagana jest interwencja użytkownika. Umożliwia to lepszą kontrolę wykonywanych za pomocą syntaxu zadań.
Aby zarządzać pułapkami musimy włączyć dodatkowy pasek narzędzi Widok -> Pasek Narzędzi -> Syntax Tools. Menu to pozwala zamieniać fragmenty kodu na komentarze, tworzyć wcięcia oraz ustawiać pułapki.
Rysunek 9. Pasek Syntax Tools
W celu wstawienia pułapki wystarczy umieścić kursor w wybranym miejscu w kodzie i kliknąć czerwoną kropkę na pasku narzędzi Ustaw punkt zatrzymania. Opcjonalnie pułapkę można również ustawić klikając na szary pasek z numerami wierszy. We wskazanym miejscu powinna pojawić się czerwona kropka, taka jak na zamieszczonym poniżej obrazku.
Rysunek 10. Pułapka w kodzie
Pasek umożliwia również tymczasowe wyłączenie wszystkich pułapek (tzn. syntax wykona się mimo ich ustawienia). Nie musimy więc ich kasować, żeby sprawdzić, czy cały kod uruchamia się poprawnie.
Analizy prezentowane w tym artykule zostały zrealizowane przy pomocy PS IMAGO PRO
Aby tymczasowo wyłączyć pułapki należy odkliknąć ikonę czerwonej kulki z białym znakiem zaznaczania Uwzględniaj punkty zatrzymania. Ustawione w kodzie pułapki nie znikną, lecz zmienią kolor na szary. Pamiętajmy także, że nawet po zapisaniu skryptu syntax pułapki znikają z zamkniętego edytora poleceń i w kolejnej sesji należy je ustawić ponownie.
Podsumowanie
Praca z kreatorem poleceń i językiem syntax wymaga pewnego doświadczenia w pracy z programem, jednak PS IMAGO PRO dostarcza użytkownikowi wielu pomocnych narzędzi stanowiących wsparcie podczas tworzenia i edycji poleceń. Mimo, że posiada ogromne możliwości i zawiera wiele zaawansowanych narzędzi, na wstępnym etapie nie wymaga od użytkownika umiejętności programowania czy uczenia się na pamięć skomplikowanej składni. Na początku wystarczy jedynie wklejać wykonywane polecenia do edytora i po niezbędnych uzupełnieniach zapisać je. Później możemy już samodzielnie tworzyć bardziej zaawansowane plany analizy danych łącząc pisanie własnych procedur i przekształceń z wklejaniem złożonych poleceń. Początkowy nakład pracy związany z tworzeniem skryptów szybko zostanie jednak nagrodzony zaoszczędzonym czasem. Warto się uczyć, aby w pełni wykorzystywać możliwości PS IMAGO PRO.
Oczywiście w tym tekście jedynie zarysowaliśmy temat. Przybliżony został edytor poleceń, główne zasady pracy z syntaxem, przygotowanie podstawowych obiektów wynikowych i uruchamianie skryptów. W kolejnych tekstach przybliżymy pozostałe narzędzia służące do automatyzacji pracy, projektowania i efektywnego tworzenia raportów.