sas 4gl...typy zmiennych i reprezentacja wartości pustych w zbiorze ... innowacyjnych projektów w...

12
Page 1 sas.com Copyright © SAS Institute Inc. All rights reserved. Copyright © SAS Institute Inc. All rights reserved. SAS 4GL Podsumowanie. [email protected] Copyright © SAS Institute Inc. All rights reserved. Sas 4gl Co 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

Upload: others

Post on 16-Jul-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SAS 4GL...Typy zmiennych i reprezentacja wartości pustych w zbiorze ... innowacyjnych projektów w SAS lub u klientów Zapraszamy studentów III, IV i V roku oraz absolwentów kierunków

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.

[email protected]

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 2: SAS 4GL...Typy zmiennych i reprezentacja wartości pustych w zbiorze ... innowacyjnych projektów w SAS lub u klientów Zapraszamy studentów III, IV i V roku oraz absolwentów kierunków

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 3: SAS 4GL...Typy zmiennych i reprezentacja wartości pustych w zbiorze ... innowacyjnych projektów w SAS lub u klientów Zapraszamy studentów III, IV i V roku oraz absolwentów kierunków

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 4: SAS 4GL...Typy zmiennych i reprezentacja wartości pustych w zbiorze ... innowacyjnych projektów w SAS lub u klientów Zapraszamy studentów III, IV i V roku oraz absolwentów kierunków

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 5: SAS 4GL...Typy zmiennych i reprezentacja wartości pustych w zbiorze ... innowacyjnych projektów w SAS lub u klientów Zapraszamy studentów III, IV i V roku oraz absolwentów kierunków

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 6: SAS 4GL...Typy zmiennych i reprezentacja wartości pustych w zbiorze ... innowacyjnych projektów w SAS lub u klientów Zapraszamy studentów III, IV i V roku oraz absolwentów kierunków

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 7: SAS 4GL...Typy zmiennych i reprezentacja wartości pustych w zbiorze ... innowacyjnych projektów w SAS lub u klientów Zapraszamy studentów III, IV i V roku oraz absolwentów kierunków

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 8: SAS 4GL...Typy zmiennych i reprezentacja wartości pustych w zbiorze ... innowacyjnych projektów w SAS lub u klientów Zapraszamy studentów III, IV i V roku oraz absolwentów kierunków

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 9: SAS 4GL...Typy zmiennych i reprezentacja wartości pustych w zbiorze ... innowacyjnych projektów w SAS lub u klientów Zapraszamy studentów III, IV i V roku oraz absolwentów kierunków

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 10: SAS 4GL...Typy zmiennych i reprezentacja wartości pustych w zbiorze ... innowacyjnych projektów w SAS lub u klientów Zapraszamy studentów III, IV i V roku oraz absolwentów kierunków

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 11: SAS 4GL...Typy zmiennych i reprezentacja wartości pustych w zbiorze ... innowacyjnych projektów w SAS lub u klientów Zapraszamy studentów III, IV i V roku oraz absolwentów kierunków

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 12: SAS 4GL...Typy zmiennych i reprezentacja wartości pustych w zbiorze ... innowacyjnych projektów w SAS lub u klientów Zapraszamy studentów III, IV i V roku oraz absolwentów kierunków

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