Upload
others
View
10
Download
0
Embed Size (px)
Citation preview
Page 1sas.com
Copyr ight © SAS Inst i tute Inc . Al l r ights reserved.
C o p yr i ght © S A S In s t i t ute In c . A l l r i gh t s r e se r ve d .
SAS 4GLPodsumowanie.
C o p yr i ght © S A S In s t i t ute In c . A l l r i gh t s r e se r ve d .
Sas 4glCo to jest?
• SAS 4GL to język czwartej generacji, nieproceduralny, umożliwiający:
• Dostęp do danych
• Przetwarzanie danych (czyszczenie, transformacje, łączenie)
• Analizę danych
• Raportowanie
• Automatyzację - makroprogramowanie
Page 2sas.com
Copyr ight © SAS Inst i tute Inc . Al l r ights reserved.
C o p yr i ght © S A S In s t i t ute In c . A l l r i gh t s r e se r ve d .
Sas 4gl3 środowiska programowania
C o p yr i ght © S A S In s t i t ute In c . A l l r i gh t s r e se r ve d .
Sas 4glBiblioteka
wskazanie (referencja) na obszar dyskowy, ma którym znajdują się dane wykorzystywane przy pracy
może wskazywać na obszar lokalny (aplikacja SAS i dane na jednym komputerze)
może wskazywać na obszar zdalny (aplikacja SAS i dane znajdują się na różnych komputerach)
opisuje dane "praktycznie" dowolnego formatu
Page 3sas.com
Copyr ight © SAS Inst i tute Inc . Al l r ights reserved.
C o p yr i ght © S A S In s t i t ute In c . A l l r i gh t s r e se r ve d .
Sas 4glImport danych
data out.produkty;
infile '/folders/myfolders/produkty.txt';
input Produkt_Id Kod $ Producent :$10. Grupa :$12.
Kategoria $ Cena Nazwa :$30.;
run;
C o p yr i ght © S A S In s t i t ute In c . A l l r i gh t s r e se r ve d .
Sas 4glTypy zmiennych i reprezentacja wartości pustych w zbiorze
Reprezentacja wartości pustych w zbiorze
• typ znakowy: pusta wartość
• typ numeryczny: kropka (.)
Page 4sas.com
Copyr ight © SAS Inst i tute Inc . Al l r ights reserved.
C o p yr i ght © S A S In s t i t ute In c . A l l r i gh t s r e se r ve d .
Sas 4glIF a WHERE
data out.produkty;
set dane.produkty_5;
if cena < 1000 then
nowa_cena=cena*1.1;
else
nowa_cena=cena;
run;
data out.produkty2;
set dane.produkty_5;
nowa_cena=cena*1.1;
where nowa_cena < 1000;
put _all_;
run;
C o p yr i ght © S A S In s t i t ute In c . A l l r i gh t s r e se r ve d .
Sas 4glOpcje zbiorów – keep, drop
data out.produkty;
set dane.produkty
(keep=Kod Producent
Cena);
put _all_;
run;
data out.produkty(keep=Kod
Producent Cena);
set dane.produkty;
put _all_;
run;
Page 5sas.com
Copyr ight © SAS Inst i tute Inc . Al l r ights reserved.
C o p yr i ght © S A S In s t i t ute In c . A l l r i gh t s r e se r ve d .
TWORZENIE TABLICY
ARRAY ARRAY-NAME {N} <$> <LENGTH> ELEMENTS <(INITIAL-VALUES)>;
gdzie:array-name – nazwa tablicyN – liczba elementów$ - oznacza tablicę zmiennych znakowychlength – długość elementów tablicyelements – lista zmiennychinitial values – wartości początkowe
_NUMERIC_ - wszystkie zmienne numeryczne_CHARACTER_ - wszystkie zmienne znakowe_ALL_ - gdy wszystkie zmienne w zbiorze są jednakowego typu
C o p yr i ght © S A S In s t i t ute In c . A l l r i gh t s r e se r ve d .
KONWERSJA TYPÓW
Przykład:
data wynik;
length numeric 8;
text='12';
numeric=text;
text=numeric*3;
run;
Przykład:
data wynik;
numeric1 = 12;
text1 = '1,234.56';
text2 = put (numeric1, z3. -l);
numeric2 = input (text1, comma8.2);
run;
Page 6sas.com
Copyr ight © SAS Inst i tute Inc . Al l r ights reserved.
C o p yr i ght © S A S In s t i t ute In c . A l l r i gh t s r e se r ve d .
FORMATY: PRZYPISANIE FORMATU
Przykład:
DATA zbior;
numer=12500.67;
miesiac=7;
FORMAT numer commax12.2 miesiac z2.;
RUN;
PROC PRINT DATA=zbior NOOBS;
RUN;
Wynik w OUTPUT:
numer miesiac
12.500,67 07
FORMAT zmienna1 format1. zmienna2 format2. ...;
Przykład:
PROC PRINT DATA=zbior NOOBS;
FORMAT miesiac roman.;
RUN;
Wynik w OUTPUT:
numer miesiac
12.500,67 VII
C o p yr i ght © S A S In s t i t ute In c . A l l r i gh t s r e se r ve d .
FORMATY: PROCEDURA FORMATPROC FORMAT <LIB=biblioteka>
<CNTLIN=zbiór_definicyjny> <FMTLIB>;
<VALUE nazwa
zakres1 = ‘wartość_sformatowana1’
...
zakresN = ‘wartość_sformatowanaN’ ; >
RUN;
Przykład:
PROC FORMAT;
VALUE oddzial
0 = 'Centrala'
1 = 'Oddział 1'
2 = 'Oddział 2'
OTHER = 'Błędny kod !' ;
RUN;
Page 7sas.com
Copyr ight © SAS Inst i tute Inc . Al l r ights reserved.
C o p yr i ght © S A S In s t i t ute In c . A l l r i gh t s r e se r ve d .
Sas 4glŁączenie zbiorów
data klasa;
set klasa_m klasa_f;
by name;
run;
data klasa;
merge klasa_1 klasa_2;
by name;
run;
A
C o p yr i ght © S A S In s t i t ute In c . A l l r i gh t s r e se r ve d .
Sas 4glMakrozmienne
%let j=wartość makrozmiennej;
%let k=%scan(&lista,1);
%put &k;
data _null_;set produkty end=koniec;call symput('lista', symget('lista')||' '||kategoria);if koniec then call symput('liczba',_N_);
run;
Page 8sas.com
Copyr ight © SAS Inst i tute Inc . Al l r ights reserved.
C o p yr i ght © S A S In s t i t ute In c . A l l r i gh t s r e se r ve d .
Sas 4glMakro
%macro zbiory2;data %do i=11 %to 16;
class&i.(where=(age=&i.)) %end;
;set sashelp.class;
run;
%mend;
%zbiory2;
%macro kategoria(kat, warunek= cena=750); %if &kat eq %then
%put Brak kategorii;%else %do; data &kat;
set dane.produkty;where kategoria="&kat"
%if &warunek ne %then and &warunek; ;run; %end;
%mend;
C o p yr i ght © S A S In s t i t ute In c . A l l r i gh t s r e se r ve d .
PROCEDURA TRANSPOSE
PROC TRANSPOSE DATA=zbiór_wejściowy OUT=zbiór_wynikowy<PREFIX=prefix> ;
<BY zm_gupujące ;><VAR zm_transponowane ;><ID zm_z_nazwami ;>
RUN;
MIES WSK1 WSK2
1 1.1 2.1
2 1.2 2.2
3 1.3 2.3
4 1.4 2.4
5 1.5 2.5
6 1.6 2.6
COL1 COL2 COL3 COL4 COL5 COL6
1 2 3 4 5 6
1.1 1.2 1.3 1.4 1.5 1.6
2.1 2.2 2.3 2.4 2.5 2.6
Przykład:
PROC TRANSPOSE DATA=kurs.sumy
OUT=tsumy;
RUN;
Page 9sas.com
Copyr ight © SAS Inst i tute Inc . Al l r ights reserved.
C o p yr i ght © S A S In s t i t ute In c . A l l r i gh t s r e se r ve d .
Agregowanie danych
Przykład:
PROC FREQ DATA=klasa;
TABLES plec*wiek;
RUN;
Table of PLEC by WIEK
PLEC WIEK
Frequency |
Percent |
Row Pct |
Col Pct | 13| 14| Total
------------------------------
Chłopiec | 1 | 2 | 3
| 20.00 | 40.00 | 60.00
| 33.33 | 66.67 |
| 50.00 | 66.67 |
------------------------------
Dziewczyna | 1 | 1 | 2
| 20.00 | 20.00 | 40.00
| 50.00 | 50.00 |
| 50.00 | 33.33 |
------------------------------
Total 2 3 5
40.00 60.00 100.00
PLEC WIEK WZROST
Chłopiec 14 143.2
Dziewczyna 13 141.5
Chłopiec 14 150.5
Dziewczyna 14 142.1
Chłopiec 13 144.8
PROC FREQ DATA=zbiór_wejściowy <ORDER=porządek> <PAGE>;
<BY zmienne_grupujące ;>
TABLES tablice_częstości </ opcje> ;
<WEIGHT zmienna_ważąca ;>
RUN;
C o p yr i ght © S A S In s t i t ute In c . A l l r i gh t s r e se r ve d .
Agregowanie danych: procedura MEANSDescriptive statistic keywords
CLM NMISS
CSS RANGE
CV SKEWNESS | SKEW
KURTOSIS | KURT STDDEV | STD
LCLM STDERR
MAX SUM
MEAN SUMWGT
MIN UCLM
MODE USS
N VAR
Quantile statistic keywords
MEDIAN | P50 Q3 | P75
P1 P90
P5 P95
P10 P99
P20 P30
P40 P60
P70 P80
Q1 | P25 QRANGE
Hypothesis testing keywords
PROBT | PRT T
PROC MEANS DATA=zbiór_wejściowy <opcje> <statystyki> ;
VAR zmienne_analizowane ;
<CLASS zmienne_klasyfikujące ;>
<TYPES hierarchia zmiennych klasyfikujących;>
<WAYS lista liczb definiujących hierarchie;>
<BY zmienne_klasyfikujące ;>
<FREQ zmienna_z_częstością ;>
<WEIGHT zmienna_ważąca ;>
<OUTPUT OUT=zbiór_wynikowy <opcje_statystyk> ;>
RUN;
Domyślnie N, MEAN, STD, MIN, MAX
Page 10sas.com
Copyr ight © SAS Inst i tute Inc . Al l r ights reserved.
C o p yr i ght © S A S In s t i t ute In c . A l l r i gh t s r e se r ve d .
Agregowanie danych: procedura MEANS
Przykład:
PROC MEANS DATA=klasa MEAN;
CLASS plec wiek;
VAR wzrost;
RUN;
Wynik w OUTPUT:
Analysis Variable : WZROST
N
PLEC WIEK Obs Mean
-------------------------------------------------
Chłopiec 13 1 144.8000000
14 2 146.8500000
Dziewczyna 13 1 141.5000000
14 1 142.1000000
-------------------------------------------------
C o p yr i ght © S A S In s t i t ute In c . A l l r i gh t s r e se r ve d .
Procedura Tabulate
Przykład raportu uzyskanego za pomocą procedury TABULATE:
20
Page 11sas.com
Copyr ight © SAS Inst i tute Inc . Al l r ights reserved.
C o p yr i ght © S A S In s t i t ute In c . A l l r i gh t s r e se r ve d .
Procedura Tabulate
PROC TABULATE DATA=zbiór-sas-data OUT=zbiór-sas-data <OPCJE>;
CLASS zmienne klasyfikujące;
VAR zmienne analizowane;
TABLE strona,wyrażenie dla wiersza,wyrażenie dla kolumny;
FORMAT zmienna1 nazwa_formatu zmienna2 nazwa_formatu;
KEYLABEL zmienna='etykieta';
LABEL zmienna='etykieta';
RUN;
21
C o p yr i ght © S A S In s t i t ute In c . A l l r i gh t s r e se r ve d .
Output Destination
Przykładowe formaty:
listing, html, html5, xml, pdf, postscript, rtf, powerpoint, tagsets.excelXP, output
ods html style=HTMLBlue;
… kod programu …
ods html close;
ods output outObjectName=datasetName;
… kod programu …
ods output close;
Page 12sas.com
Copyr ight © SAS Inst i tute Inc . Al l r ights reserved.
C o p yr i ght © S A S In s t i t ute In c . A l l r i gh t s r e se r ve d .
Akademia Młodych TalentówTrzy tury Akademii dla programistów, po jednej na: lipiec, sierpień, wrzesień.
Oferujemy:
• 2 tygodniowy, intensywny cykl szkoleń z rozwiązań SAS
• udział w egzaminie, kończącym się certyfikatem
[ Certified SAS Base Programmer]
• dla najlepszych absolwentów - pracę przy realizacji innowacyjnych projektów w SAS lub u klientów
Zapraszamy studentów III, IV i V roku oraz absolwentów kierunków informatycznych.
Więcej informacji: https://goo.gl/DzEIVa
Akademickie Centrum Kompetencji
Celem programu jest pomaganie najzdolniejszym studentomuczącym się SAS w stawianiu pierwszych kroków na rynku pracy.
Korzyści:
• możliwość udziału w Dniach Otwartych w SAS
• wymiana wiedzy i doświadczeń w ramach grupy ACK
• baza ofert praktyk/pracy otwarta dla studentówzarejestrowanych w Programie
• bezpośredni kontakt z potencjalnymi pracodawcami (klienci ipartnerzy SAS)
• udział w szkoleniach produktowych
• okazja do podnoszenia kompetencji miękkich poprzez udział worganizowanych przez SAS inicjatywach
Więcej informacji: https://goo.gl/38OeId
Dołącz do grupy Akademickiego Centrum Kompetencji na LinkedIni bądź na bieżąco z wydarzeniami SAS: https://goo.gl/gakoWU
SAS dla Studentów
sas.com
C o p yr i ght © S A S In s t i t ute In c . A l l r i gh t s r e se r ve d .
Dziękujemy za udział
Kolejne konsultacje 9 maja godz. 16:00 – 17:00