Úvod do SASu pro Windows - Část I.
Základy práce se SASem

SAS je registrovaná ochranná známka  SAS Institute, Inc., Cary, NC, USA

(c) 2000 Michal Kulich, 1998 Oliver Schabenberger


1. Uživatelské rozhraní SASu pro Windows

1.1 Okna PROG, LOG a OUT
1.2 Změna velikosti a barvy oken
1.3 Spouštění programů
1.4 Mazání obsahu oken
1.5 Ukládání výsledků
1.6 Funkční klávesy F1-F12

2. Programovací jazyk SASu

2.1 Základní syntaktická pravidla
2.2 SASové programy
2.3 Přepínače (options)
2.4 Titulky
2.5 Komentáře

3. Nápověda v SASu 


1. Uživatelské rozhraní SASu pro Windows

1.1 Okna PROG, LOG a OUT

Klasické uživatelské rozhraní SASu se sestává ze tří oken, zvaných LOG, OUT a PROGRAM EDITOR. Okno PROGRAM EDITOR (PROGRAM) slouží k zadávání jednotlivých příkazů SASu a ke vstupu dat z klávesnice. Po spuštění příkazů zapsaných v PROGRAM okně je SAS zpracuje a vypíše výsledky do okna OUT, které slouží k textovému výstupu na obrazovku. Okno OUT je na začátku práce se SASem překryto ostatními dvěma okny, ale v okamžiku spuštění programu, který provádí textový výstup, se maximalizuje a naopak překryje jiná okna. Okno LOG slouží k informaci, jaká procedura byla spuštěna, jak dlouho trvala a jaký byl její průběh. Syntaktické a běhové chyby se zobrazují právě do okna LOG.

Pozor: Jestliže program vyprodukuje jakýkoli textový výstup, okno OUT se maximalizuje a překryje okno LOG, i když program obsahuje syntaktické či běhové chyby. Proto je užitečné vždy zkontrolovat obsah LOG okna a přesvědčit se, že program proběhl bez chyb.

Přepínat mezi okny lze poklepáním myší na příslušné okno, výběrem z hlavního menu Window, anebo funkčními klávesami F5 (PROGRAM), F6(LOG), F7 (OUTPUT).

1.2 Změna velikosti a barvy oken

Všechna okna mají předdefinovanou bílou barvu, což může nezkušeného uživatele mást. Barvu oken lze však měnit. Například chceme-li mít PROG okno červené s bílým textem, poklepeme na něj, přemístíme kurzor do bílého obdélníku vlevo nahoře a napíšeme

color background red color text white

Opakovat podobný postup pro všechna okna je nešikovné, ale naštěstí SAS obsahuje zabudované makro, které předělá celé schema barev podle předchozí verze SAS 6.08. Stačí napsat v PROGRAM okně

%dm608clr;

a spustit program (viz 1.3). Změna velikosti a umístění oken se provádí standardně myší. Nastavení oken lze uschovat jako předdefinované pomocí menu View/Save Attributes  pro každé okno zvlášť anebo Options/Save Settings Now.

1.3 Spouštění programů

Programem se rozumí celý obsah okna PROGRAM nebo jeho vyznačená část, která obsahuje příkazy a data. Program lze spustit třemi způsoby:

  1. poklepat myší na běžícího chasníka na liště nástrojů,
  2. vybrat Locals/Submit z menu
  3. zmáčknout F8.

Není-li vyznačena žádná část okna PROGRAM, spustí se celý obsah okna. Chceme-li spustit jenom některé řádky, vyznačíme je nejprve myší anebo šipkami na klávesnici za současného držení Shiftu.

Pokud se spustí celý obsah okna PROGRAM, SAS po spuštění vymaže z okna všechny příkazy. Obsah okna však lze vyvolat zpátky stisknutím F4 anebo volbou Locals/Recall text. Opakovaným tisknutím F4 se postupně zpětně vyvolávají sekvence příkazů v obráceném pořadí, než jak byly předtím spouštěny.

1.4 Mazání obsahu oken

S výjimkou okna PROGRAM, které se automaticky maže po každém spuštění celého jeho obsahu, všechna ostatní okna postupně akumulují výstupy a proto se doporučuje je často mazat. Zejména obsah okna OUT je často třeba nakonec uschovat nebo vytisknout a nehodí se, aby toto okno obsahovalo hromadu výstupů z pokusných nebo nepovedených programů. Obsah okna se vymaže aktivováním okna a výběrem Edit/Clear Text z menu, nebo stisknutím Ctrl-E na klávesnici. Mazání je možno automatizovat definováním vhodných funkčních kláves (viz 1.6).

1.5 Ukládání výsledků

Programy a výsledky lze samozřejmě kdykoli uložit na disk výběrem File/Save nebo File/Save As z menu. Je ale třeba dávat bedlivý pozor na to, jaké okno právě uschováváme. Příkaz k uložení se vždy týká právě aktivního okna, takže je snadné uložit obsah LOG okna namísto zamýšleného programu nebo výsledků, aniž by si člověk něčeho všiml. Tím lze přijít ve vteřině o veliký kus práce.

1.6 Funkční klávesy F1-F12

Pohodlí práce s uživatelským rozhraním SASu lze zlepšit používáním funkčních kláves, které mohou automatizovat mnoho činností při práci s okny. Například F8 spouští program, F4 vyvolává obsah spuštěného programu do PROGRAM okna, F5, F6 a F7 přepínají mezi PROGRAM, LOG a OUT okny. Okno s popisem činnosti všech funkčních kláves lze vyvolat stisknutím F9 a v tomto okně je možné klávesy i předefinovat. Například chceme-li před každým spuštěním programu vymazat okna OUT a LOG, vyvolat spuštěný program zpět a otevřít LOG okno přes OUT, předefinujeme například klávesu Ctrl-F1 tímto způsobem:

CTL F1    out; clear; log; clear; prg; zoom off; submit; recall; out; log;

Pak stačí spouštět programy stiskem Ctrl-F1 namísto F4. Nastavení funkčních kláves lze uschovat pomocí Options/Save Settings Now. Při příštím spuštění SASu budou automaticky k disposici. Nedoporučuje se měnit nastavení kláves F4-F9, které standardně odpovídají důležitým příkazům.

2. Programovací jazyk SASu

2.1 Základní syntaktická pravidla

2.2. SASové programy

SASové programy se skládají ze dvou druhů procedur. Datová procedura začíná klíčovým slovem DATA a vlastní procedura (nadále prostě PROCedura) klíčovým slovem PROC. Datová procedura slouží k načítání a úpravě dat a k vytváření datových souborů, vlastní PROCedury data zpracovávají a vydávají výsledky. Každá PROCedura používá vlastní příkazy, některé příkazy (jako BY) jsou však mnoha PROCedurám společné a fungují vždy stejně nebo velmi podobně. Datová procedura obsahuje jméno souboru, který vytváří nebo mění. Například

DATA mojedata;
  <příkazy a data>
RUN;

vytváří datový soubor pojmenovaný MOJEDATA, s kterým pak pod tímto jménem mohou pracovat další PROCedury. Příkaz RUN; na konci procedur je nepovinný, ale doporučuje se jej vkládat. Jestliže je vyvolána PROCedura bez konkrétní specifikace datového souboru, pracuje automaticky s posledním úspěšně vytvořeným datovým souborem. Například program

DATA mojedata;
  <příkazy a data>
RUN;
DATA jehodata;
  <příkazy a data>
RUN;
PROC PRINT; RUN;

vytvoří datový soubor MOJEDATA, potom datový soubor JEHODATA, a nakonec vyvolá PROCeduru PRINT, jejímž úkolem je zobrazit obsah datového souboru do okna OUT. Jelikož není uvedeno, který soubor má PROC PRINT zobrazit, automaticky se vezme poslední vytvořený soubor, tedy JEHODATA. Chceme-li vypsat obsah souboru MOJEDATA, musíme o něj výslovně požádat:

PROC PRINT DATA=mojedata;
RUN;

Výraz DATA=MOJEDATA definuje argument (option) DATA= pro proceduru PRINT a ten jí říká, s jakými daty má pracovat. Všechny PROCedury SASu mají tento argument. Při programování v SASu je žádoucí uvádět argument DATA při volání každé PROCedury, aby bylo jasné, s jakými daty má pracovat. Všimněte si, že SAS nemá žádný problém s používáním téhož klíčového slova DATA pro zahájení datové procedury a pro argument posílaný vlastním PROCedurám.

2.3. Přepínače (options)

Přepínače (v originále "options" stejně jako argumenty procedur) ovládají podobu výstupů a jiné vlastnosti SASu. Přepínají se příkazem OPTIONS, který se musí vydávat vně jakékoli datové nebo vlastní procedury, obvykle hned na začátku práce se SASem. Syntaxe vypadá následovně:

OPTIONS LS=84 PS=64 NOCENTER;

Často používané přepínače jsou:

2.4. Titulky

Titulky jsou popisné hlavičky, které SAS umísťuje na začátek každé stránky výstupu. Titulek je definován příkazem TITLE následovaným řetězcem znaků uzavřených v jednoduchých nebo dvojitých uvozovkách. Například:

TITLE 'Obsah souboru MOJEDATA';
Titulek může mít více řádků, například:
TITLE 'Obsah souboru MOJEDATA';
TITLE2 "Data byla sebrana v dubnu";
TITLE3 'a uz jich mam plne zuby';

Obecně se TITLEn objeví na n-tém řádku, kde n může být až 9. Titulky se objevují dokud nejsou změněny nebo zrušeny, přičemž n-tý titulek se ruší příkazem TITLEn;. Změna nebo zrušení n-tého titulku má za následek zrušení všech titulků s vyšším číslem.

Pozor na neukončené řetězce: Zapomenete-li v řetězci uzavírající uvozovky, SAS vydá hlášku v LOG okně:

WARNING: The current word or quoted string has become more than 200
         characters long.  You may have unbalanced quotation marks.
NOTE: A single quote (') will terminate this quoted string.

Pak vám nepomůže nic jiného, než vydat výslovný příkaz k ukončení řetězce

';

a někdy ani to. Pak nezbývá, něž zavřít SAS a začít znovu.

2.5. Komentáře

SAS umožňuje vkládat komentáře do programů dvěma různými způsoby. Za prvé, pokud řádka začíná znakem *, SAS ignoruje všechen následující text, dokud nenarazí na středník, tedy i po několik řádek. Například

* vytvářím datový soubor
           MOJEDATA;
DATA mojedata;
  INPUT a b c;
< a tak dále >

Za druhé, ignoruje se všechno od dvouznaku /* do */. Například následující datová procedura se vůbec neprovede:

/*
vytvářím datový soubor MOJEDATA;
DATA mojedata;
  INPUT a b c;
< a tak dále >
*/

3. Nápověda v SASu

SAS má vestavěný systém nápovědy, bohužel poněkud chaotický, nepřehledný a bez detailů. Nejpřehlednější popis syntaxe jednotlivých modulů, procedur, funkcí a jazykových konstrukcí SASu vyvoláme volbou Help/SAS System/SAS System Help: Main Menu/Limited Index. Pro podrobnosti, zejména přesnou specifikaci implementovaných statistických metod, je třeba se obrátit na manuály dodávané firmou SAS.

Návrat na hlavní stránku