ZAJĘCIA 2 Przed rozpoczęciem zajęć należy wykonać instrukcje z poprzednich laboratoriów bądź z pliku zaj2_prep.sas. FILTROWANIE WIERSZY Filtrowanie wierszy pozwala wybrać do przetwarzania tylko te dane, które nas interesują. Do filtrowania wierszy służy instrukcja WHERE. Ćwiczenie 7 Na podstawie tabeli LICEUM.TOWARY utworzyć nową tabelę LICEUM.TOWARY1, która zawiera tylko te towary, których cena jest mniejsza lub równa 3. Jaka jest różnica w użyciu WHERE w tym i poprzednim przykładzie? Ćwiczenie 8 Na podstawie tabeli TABELABMI z biblioteki LIBSAS w tej samej bibliotece utwórz trzy tabele: NIEDOZYWIENIE, w której będą znajdować się dane osób, których BMI jest mniejsze niż 18, NORMA,z danymi osób, których BMI jest większa lub równa 18 oraz mniejsza od 30, NADWAGA, z danymi osób, których BMI jest większe lub równe 30.
Ćwiczenie 9* Na podstawie tabeli AIR z biblioteki SASHELP utworzyć w bibliotece LIBSAS tabelę POWIETRZE60, w której znajdować się będą dane na temat powietrza od roku 1960. WSKAZÓWKA: Poszukać informacji o tym, czym jest data w SASie Ćwiczenie 10 Na podstawie tabeli HEART z biblioteki SASHELP utworzyć w bibliotece LIBSAS tabelę SMIERC_BEZ_POWODU, w której znajdują się tylko obserwacje z brakami danych w kolumnie DeathCause. WSKAZÓWKA: zajrzeć do dokumentacji Ćwiczenie 11 Skonstruować dowolny (sensowny) DATA STEP z WHERE zawierający LIKE WSKAZÓWKA: zajrzeć do dokumentacji FILTROWANIE KOLUMN Do filtrowania kolumn służą instrukcje KEEP (definiuje zmienne, które bierzemy pod uwagę) oraz DROP(definiuje zmienne, które pomijamy). KEEP i DROP mogą być użyte na dwa sposoby: 1. jako opcja zbioru wejściowego 2. jako oddzielna instrukcja.
Ćwiczenie 12 a) Na podstawie tabeli BASEBALL z biblioteki SASHELP skonstruować tabelę BASEBALL_PLAYERS, w bibliotece LIBSAS, która zawierać będzie imię i nazwisko zawodnika, drużynę, ligę, pozycję oraz pensję. b) Na podstawie tabeli BASEBALL_PLAYERS skonstruować podobną tabelę NATIONAL_BASEBALL_PLAYERS, w której będą znajdować się obserwacje dotyczące zawodników z ligii narodowej (national). Pominąć kolumnę LEAGUE. ZMIANA NAZW ZMIENNYCH - RENAME Do zmiany nazw zmiennych służy RENAME. Również można ją stosować na dwa sposoby: jako opcja zbioru zbiór(rename=(stara_nazwa=nowa_ nazwa...)) DATA wynik; SET liceum.uczniowie(rename=(nr_but a=nb)); jako instrukcja w dowolnym miejscu w obrębie DATA STEP u RENAME stara_nazwa=nowa_nazwa ; DATA wynik; SET liceum.uczniowie; RENAME nr_buta=nb; Ćwiczenie 13 W tabeli NATIONAL_BASEBALL_PLAYERS zmienić nazwy zmiennych na ich polskie odpowiedniki. SORTOWANIE DANYCH - SORT Wiele operacji (np. przetwarzanie w grupach, łączenie zbiorów po kluczu) wymaga wcześniejszego posortowania danych.
Procedura SORT sortuje obserwacje w zbiorze wg jednej lub wielu zmiennych PROC SORT DATA=zbior_do_sortowania <OUT=zbior_posortowany><opcje>; BY <DESCENDING> zmienna1 <DESCENDING> zmienna2; PROC SORT DATA = liceum.uczniowie out=liceum.posortowani_uczniowie; BY nb; OPCJE: NODUP NODUPRECS - w zbiorze nie zostaną zapisane powtarzające się obserwacje NODUPKEY - w zbiorze nie zostaną zapisane obserwacje z powtarzającymi się wartościami klucza DUPOUT- zachowuje duplikaty usunięte ze zb. wejściowego przy sortowaniu z powyższymi opcjami. Opcja wskazuje zbiór, do którego zapisywane są powtarzające się obserwacje. PROC SORT DATA = liceum.uczniowie OUT=liceum.posortowani_uczniowie NODUP DUPOUT=liceum.uczniowie_duplikaty; RUN BY nb; EQUALS - porządek zapisu obserwacji o tych samych wartościach klucza jest taki sam jak w zbiorze wejściowym NOTEQUALS - dowolny porządek zapisu obserwacji o tych samych wartościach klucza
SORTSEQ - porządek sortowania inny niż standardowy (potrzebny np gdy chcemy wymusić porządek sortowania wg alfabetu polskiego) Ćwiczenie 14 Utworzyć tabelę LIBSAS.CARS_H, w której znajdują się dane z tabeli SASHELP.CARS posortowane malejąco po kolumnie ilość koni mechanicznych bez powtarzających się wartości klucza (czyli koni mechanicznych). Duplikaty zapisać do tabeli LIBSAS.CARS_HD; Ćwiczenie 15 Posortować tabelę liceum.uczniowie po nazwisku. PYTANIA PODSUMOWUJĄCE 1. Jaka instrukcja służy do filtrowania wierszy? 2. Jakie instrukcje służą do filtrowania kolumn? 3. Jakich operatorów możemy używać w ramach warunku wyrażenia WHERE? 4. Jak usunąć kolumnę? 5. W jakim celu sortujemy dane? 6. Jakie znasz opcje instrukcji SORT? Do czego służą?