wprowadzenie_do_sas_cz2.pdf
(
281 KB
)
Pobierz
Wprowadzenie do SAS_cz2
Wprowadzenie do SAS
Jak zacząć?
Część II: Elementy języka SAS 4GL
Rafał Latkowski
2
EnhancedEditor(1)
Uruchamianie programu
•Zaznaczyć blok (lub bez zaznaczania, gdy
chcemy wykonać całą zawartość pliku).
•Wcisnąć F3 lub
3
4
Definiowanie bibliotek
•Engine„V8”:
libnamekurs „c:\kurs”;
•Różnice pomiędzy interfejsem:
–Podłączanie przy starcie można uzyskać
wpisując do „autoexec.sas”
•Engine„V8”(domyślny) jest w pełni
zgodny z V7-V9 oraz czyta automatycznie
zbiory V6
•Zbiory SAS mogą być skompresowane
–
optionscompress=yes;
Ćwiczenie 3
•Skasować bibliotekę kurs
•Założyć bibliotekę kurs bez pomocy
interfejsu
•Założyć bibliotekę dane wskazującą na ten
sam katalog.
5
6
1
Struktura programu w 4GL
Wprowadzenie do SAS 4GL
•Program w 4GL składa się z:
–Proc Step’ów
–Data Step’ów
•Data Step’ytworzą nowy zbiór danych
(niekoniecznie)
•Proc Step’ywykonują procedurę SAS
(praktycznie nierozszerzalnyzbiór procedur)
•Nie można zagnieżdżać proc stepów i data
stepów w sobie (w dowolnej kombinacji)
7
8
Cechy 4GL
Data Step
•SQL jest podzbiorem języka 4GL (proc sql; tam
można zagnieżdżać wyrażenia SQL’owe)
•SAS 4GL jest skomplikowany
–Posiada duże bogactwo opcji stosowalnych w wielu
miejscach
–Posiada ogromną liczbę procedur o rozbudowanej
funkcjonalności
•SAS 4GL jest prosty
–Jeżeli nie wiesz, jak coś zostało zaimplementowane, to
zostało to zaimplementowane w najprostszy sposób
(tj. tak aby uzyskać maksymalną efektywność).
•
data
<nazwa zbioru>;
•<zawartość data step’a>
•
run;
9
10
Data Step pusty
Data Step kopiujący
•
data a;
•
run;
•
data a;
•
set kurs.noty;
•
run;
•Tworzy pusty zbiór (1 obserwacja, 0
zmiennych);
•Domyślnie zbiór utworzony zostanie w
bibliotece work(data a; === data work.a;)
•Kopiuje zbiór określony w poleceniu set do
zbioru określonego w nagłówku data
step’a;
11
12
2
Ćwiczenie 4
Sprawdzenie nazw kolumn (1)
•Skopiować zbiór kurs.notydo biblioteki
dane pod dowolną nazwą (np. dane.kopia)
•Porównać, czy zbiór jest widoczny również
w bibliotece kurs (ew. użyć opcji
„View/Refresh”)
•Nazwy kolumn można sprawdzić w oknie
propertieszbioru danych (prawy przycisk
myszy na zbiorze).
•Nazwy kolumn można sprawdzić w
VIEWTABLE, ale uwaga: należy odróżnić
nazwy od label’i.
13
14
Sprawdzenie nazw kolumn (2)
Proc Step –opis zbioru (1)
•
proc contentsdata=kurs.noty;
•
run;
•Wypisuje informacje o zbiorze w oknie
„Out”(czyli jest to tzw. raport).
15
16
Proc Contents(2)
Proc Step -sortowanie
•
proc contents data=kurs.noty
short;
•
run;
•
proc sort data=kurs.iris
out=kurs.iris_sorted;
•
by sepallensepalwid;
•
run;
•Opcja shortpowoduje, że wypisywane są
tylko nazwy zmiennych.
•Sortuje zbiór w.g. podanych zmiennych.
•Można również bez „out=…”, wtedy nadpisuje
zbiór „data=…”.
•Uwaga: Zbiór otwarty (np. w VIEWTABLE) nie
może być nadpisany (to dotyczy również data
step’ów).
17
18
3
PROC SORT Syntax(doc)
Opcje procedury SORT (doc)
Syntax
PROC SORT
<
option(s)
> <
collating-
sequence-option
>;
BY
<DESCENDING>
variable-1
<...<DESCENDING>
variable-n
>;
Specify the output order
Reverse the order for character
variables
REVERSE
Maintain the order within BY groups
EQUALS
Allow for variation within BY groups
NOEQUALS
Eliminate duplicate observations
•Dokumentacja:
–F1
–http://v8doc.sas.com/sashtml/
Delete observations with common BY
values
NODUPKEY
Delete observations that have
duplicate values
NODUPRECS
19
20
Ćwiczenie 5
Proc SQL
•Posortować zbiór Kurs.Noty(np. do
Kurs.Noty2), tak aby ostatnie
(„najmłodsze”) notowania znalazły się na
początku zbioru.
•Posortować zbiór Kurs.Notyjak powyżej;
W zbiorze wynikowym (np. Kurs.Noty3)
powinna się znaleźć tylko jedna
obserwacja (notowanie) z każdego dnia.
•
proc sql;
•
create table kurs.noty3s
•
as
•
select *
•
from kurs.noty
•
where nazwa='TONSIL'
•
order by data desc;
•
quit;
21
22
Wczytanie zbioru wewnętrznego
Proste techniki wczytywania
•
data klasa;
•
input imie$ nazwisko$ wiek;
•
cards;
•
Jan Kowalski 8
•
OlaWokalska9
•
Wit Lokawski8
•
;
•
run;
23
24
4
Wczytywanie –problemy (1)
Wczytywanie –problemy (2)
•
data klasa;
•
input imie$ nazwisko$ wiek;
•
cards;
•
Jan Kowalski 8
•
OlaWokalska9
•
Wit Lokawski8
•
AleksanderMucha10
•
;
•
run;
25
26
Wczytywanie –problemy (3)
Wczytywanie –rozwiązanie
•
data klasa;
•
length imie$10;
•
input imie$ nazwisko$ wiek;
•
cards;
•
Jan Kowalski 8
•
OlaWokalska9
•
Wit Lokawski8
•
AleksanderMucha10
•
;
•
run;
27
28
Length
Wczytywanie zbioru z pliku
•Analogicznie można napisać:
–
lengthwiek 8;
–
lengthwiek 4;
–
lengthnazwisko $20;
•
data kan;
•
infile'c:\kurs\txt\kan.txt';
•
input plecwiekzawodmiejsce_zam
rozpoznanieuzaleznienie_lat
ilosc_wyp_papierosow
poprzednie_probychoroby_ukl_kraz
choroby_ukl_kraz_ob
choroby_ukl_oddechchoroby_wrzody
choroby_psychicznechoroby_nerwice
ilosc_zab_elektroczas_trw_obserw
efekty_leczeniadzialania_uboczne;
•
run;
29
30
5
Plik z chomika:
ftaq
Inne pliki z tego folderu:
Nowa Atlantyda - Francis Bacon.PDF
(5113 KB)
Ossendowski Antoni F. - Karpaty i Podkarpacie(1).pdf
(40058 KB)
Ossendowski Antoni - Szanchaj.pdf
(1673 KB)
Ferdynand Antoni Ossendowski - Pod smaganiem samumu. Podróż po Afryce Północnej Algierja i Tunisja (1926).pdf
(18028 KB)
Ossendowski - Płomienna Północ(1).pdf
(714167 KB)
Inne foldery tego chomika:
_ Kurs. Feynmana wykłady z fizyki
► Książki PDF (pdf)
10.Z chomika kondratowa 1 iv
Alex Collier
Astrologia
Zgłoś jeśli
naruszono regulamin