Prowadzący: dr Karol Przanowski dr Sebastian Zając
Zakład Analizy Historii Zdarzeń i Analiz Wielopoziomowych
Po uruchomieniu aplikacji SAS Enterprise Guide widoczne jest okno powitalne, które umożliwia stworzenie nowego projektu lub otwarcie ostatnio używanego projektu.
Nowy program można utworzyć na kilka sposobów:
Enhanced Editor jest edytorem kodu, który:
Opcje edytora dostępne są w menu głównym Program -> Opcje edytora
Enhanced Editor pozwala stworzyć skróty ułatwiające tworzenie programów. Jako skrót można zapisać najczęściej używane fragmenty kodu. Skróty dostępne są z menu głównego Program->Dodaj makro skrótu
Pliki tekstowe, które możesz otworzyć w każdym notatniku *.sas
Repozytorium danych
Logiczna struktura wskazująca miejsce przechowywania danych (referencja, wskaźnik).
Definiuje sposób dostępu:
Biblioteki podpinane z kodu będą widoczne po kliknięciu przycisku Odśwież
LIBNAME nazwa_biblioteki silnik_biblioteki parametrny;
Domyślnym silinikiem biblioteki jest base.
LIBNAME nazwa_biblioteki LIST;
LIBNAME nazwa_biblioteki CLEAR;
W Systemie SAS językiem, którym będziemy się posługiwać jest 4GL (Fourth Generation Language). Jest to wyspecjalizowany język do przetwarzania danych w formie tabelarycznej. Stosuje się w nim koncepcje programowania proceduralnego.
Każdy program w języku SAS 4GL składa się z bloków (ang. Step), które wykonywane są sekwencyjnie. Wpierw wszystkie instrukcje są kompilowane, a następnie wykonywane.
Kompilacja i wykonywanie programu jest również wykonywane sekwencyjnie. Komunikacja między blokami może odbywać się za pomocą makrozmiennych, makroprogramów lub z wykorzystaniem pośrednich zbiorów.
data a; /* nazwa zbioru wynikowego zapisanego do biblioteki work */
x=4; /* zmienna x o jednej obserwacji */
run;
Programy w 4GL dziela sie na bloki dwóch rodzajów: tzw. DATA Stepy i PROC Stepy. Powyżej widzimy przykład DATA Stepu, który zawsze zaczyna sie slowem kluczowym DATA i kończy słowem RUN. Każde polecenie w jezyku 4GL musi byc zakończone średnikiem. Efektem działania powyzszego kodu jest tabela o nazwie a zapisanej do biblioteki work, z jedną kolumną o nazwie X i jedną wartością w kolumnie wynoszącą 4.
Uruchom kod i sprawdź kolorowanie składni.
data a;
x=4
run;
Fizyczny podział na linie nie ma znaczenia, gdyż kompilowana jest linia do napotkania znaku średnika. Wielkość liter użytych w kodzie programu (z wyjątkiem porównywania wartości zmiennych tekstowych) jest bez znaczenia.
W jezyku 4GL występują tylko dwa typy zmiennych: numeryczne i tekstowe.
Dodajmy więcej zmiennych i może jakiś tekst. Separatorem dziesiętnym jest kropka.
data a;
x=2;
y=7.5;
z='abc';
run;
data b;
x=0;
y=1/x;
run;
data a;
x=5;
x=200;
run;
Potrzebna nam bedzie instrukcja, ktora wymusza zapisanie wartosci do zbioru wynikowego - instrukcja OUTPUT:
data a;
x=5;
output;
x=200;
output;
run;
Zapisywanie większej ilości wartości i zmiennych tym sposobem będzie trwało raczej długo.
data a;
x=5;
output;
run;
data a;
x=5;
output;
x=200;
run;
data a;
x=5;
y=7;
output;
x=6;
y=8;
output;
run;
data zbior;
DO i=1 to 10;
x=floor(100*ranuni(0));
output;
end;
run;