Podstawowe i zaawansowane programowanie oraz statystyka w SAS

Nr przedmiotu: 223110-1234

Prowadzący: dr Karol Przanowski dr Sebastian Zając
Zakład Analizy Historii Zdarzeń i Analiz Wielopoziomowych

Czego będziemy się uczyć ?



Dokumentacja

http://support.sas.com/documentation/

Podstawowe środowiska pracy analityka

  • SAS BASE / SAS Foundation / SAS Display Manager
  • SAS Enterprise Guide
  • SAS Studio (www)

Zaawansowane środowiska pracy analityka

  • SAS Enterprise Miner
  • SAS Viya

SAS BASE

Środowisko Base

SAS Studio

Środowisko Studio

Enterprise Guide

Środowisko EG

okno powitalne

okno powitalne

Po uruchomieniu aplikacji SAS Enterprise Guide widoczne jest okno powitalne, które umożliwia stworzenie nowego projektu lub otwarcie ostatnio używanego projektu.

Tworzenie nowego programu

Nowy program można utworzyć na kilka sposobów:

  • Z menu podręcznego dla przebiegu procesu: Nowy->Program
  • Z menu głównego aplikacji: Plik->Nowy->Program
okno powitalne

Enhanced Editor

Enhanced Editor jest edytorem kodu, który:

  • umożliwia uruchamianie kodu,
  • koloruje składnię,
  • podpowiada składnię.
okno powitalne

Opcje edytora

Opcje edytora dostępne są w menu głównym Program -> Opcje edytora

Makro skróty

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 programów

Pliki tekstowe, które możesz otworzyć w każdym notatniku *.sas

Dane tabelaryczne zapisać można jako:

  • Format SAS: *.sas7bdat
  • Tabele innych baz danych
  • Arkusze kalkulacyjne Excel
  • Pliki tekstowe
  • Pliki XML
  • ...

Repozytorium danych

Logiczna struktura wskazująca miejsce przechowywania danych (referencja, wskaźnik).

Definiuje sposób dostępu:

  • Lokalizację danych
  • Prawa dostępu

Podstawowe biblioteki

  • WORK – tymczasowa, domyślna, unikalna dla każdej sesji
  • SASUSER – trwała, unikalna dla każdego użytkownika
  • MAPS, MAPSSAS, MAPSGFK – zawiera dane pozwalające narysować mapę

Biblioteki w SAS Enterprise Guide

Biblioteki podpinane z kodu będą widoczne po kliknięciu przycisku Odśwież

Kody 4GL dla własnych bibliotek

Tworzenie biblioteki

LIBNAME nazwa_biblioteki silnik_biblioteki parametrny;

Domyślnym silinikiem biblioteki jest base.

Informacja o bibliotece w logu

LIBNAME nazwa_biblioteki LIST;

Usuwanie bibliotek

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.

Pierwszy program

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.

Typy danych

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;

Atrybuty zmiennych

  • Nazwa: do 32 znaków, pierwszym znakiem musi być litera lub _
  • Typ: numeryczny, znakowy
  • Długość
  • Format
  • Informat
  • Etykieta: do 256 znaków
  • Typ indeksu: brak, prosty, złożony, oba
  • Atrybuty rozszerzone

Typ danych – numeryczny

  • Stałanumeryczna: 10, 5.3, -5
  • Zmienna numeryczna - Długość 3-8 bajtów oraz przechowuje wartości całkowitoliczbowe i zmiennoprzecinkowe

Typ danych - znakowy

  • Stała znakowa - ’tekst 1’, "tekst 2"
  • Zmienna znakowa - Długość 1-32   767 bajtów, Czuła na wielkość liter

Braki danych

data b;
x=0;
y=1/x;
run;

Zmodyfikujmy trochę nasz program

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.

Zadanie domowe - jakie wyniki wygenerują kody?

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;

Prosta pętla DO END

data zbior;
DO i=1 to 10;
x=floor(100*ranuni(0));
output;
end;
run;

© Sebastian Zając 2019