Ta strona wykorzystuje ciasteczka ("cookies") w celu zapewnienia maksymalnej wygody w korzystaniu z naszego serwisu. Czy wyrażasz na to zgodę?

Czytaj więcej
< All Topics
Print

SAS

Program SAS dla studentów Biologii

Instalacja i pierwsze uruchomienie programu

Większość studentów korzysta z programów już zainstalowanych na komputerach uczelnianych. Okrojone wersje udostępniane studentom można zainstalować na własnym komputerze, o ile zawiera on dostatecznie dużo wolnego miejsca na dysku (około 0.5 GB). Instalacja przebiega w sposób standardowy.

Pierwsze uruchomienie programu pokazuje typowy dla programów windowsowych okienkowy układ podstawowych modułów programu SAS (rys.1).

Rys.1. Okna pokazujące się po pierwszym uruchomieniu programu SAS. Często okna “edytor” i “log” przykrywają całkowicie okno “wynik” , a wszystkie mają dopisek “- (bez tytułu)”.

Z lewej strony pokazuje się długie okno, w którym gromadzone są adresy poszczególnych wyników (Rezultaty) albo pokazywane jest umiejscowienie tworzonej/analizowanej bazy danych (Eksplorator). Przełączanie się między tymi funkcjami umożliwiają zakładki na dole. W oknie “log” pokazują się komunikaty dotyczące wszystkich działań wykonywanych przez program i początkowo pokazuje się komunikat dotyczący licencji programu i czasu inicjacji. Warto wiedzieć, że informacje o błędach wyświetlane są na czerwono (tego typu błędy uniemożliwiają wykonanie poszczególnych podprogramów), a pewne wątpliwości i niejednoznaczności, przy których jednak wykonanie programu jest możliwe – wyświetlane są na zielono. W oknie “wynik” pokazują się wyniki wykonywanych procedur. Okno edytora służy do zapisywania programów w języku 4GL. Paski na górze umożliwiają uruchamianie podstawowych funkcji programu (praca z nimi nie odbiega od innych programów windowsowych).

Wyniki z okienka “Wynik”, programy z okienka “edytora” oraz komunikaty z okienka “Log’ można zapisać w plikach z rozszerzeniami: .OUT, .SAS oraz .LOG odpowiednio. Są one zapisem tekstu z tych okienek w kodzie ASCI. Mogą być odczytane na innych komputerach (bez SASa) np. w notatniku. Aby utworzyć odpowiedni plik wystarczy po uaktywnieniu stosownego okna kliknąć na ikonkę “Zapisz”, wpisać nazwę tworzonego pliku, skierować do odpowiedniego katalogu i kliknąć na “Zapisz”.

 

Tworzenie bazy danych

Dane analizowane w biologii mają ściśle określoną strukturę: są zestawem obliczeń i pomiarów szeregu obiektów (osobników) wybranych z pewnej populacji bądź serią wyników wielokrotnie powtarzanych eksperymentów często w różnych wariantach. Wyróżnić w nich można informacje dotyczące pojedynczego obiektu (związaną z pomiarami jednego obiektu lub wynikami jednego eksperymentu) na która składa się ciąg wielkości liczbowych i jakościowych. Każda z tych wielkości jest pewną zmienną i ma swoją nazwę (np. ciężar, gatunek, płeć, datę znalezienia obiektu, określenie czy osobnik jest aktywny/nieaktywny rozrodczo), i typ (liczbowy, tekstowy, logiczny itd.).

Dane uzyskane przy prowadzeniu badań zapisane w postaci przejrzystych tabel o proporcjonalnie dobranej liczbie wierszy i kolumn, bez powtarzających się informacji – świetnie nadają się do umieszczenia w pracy licencjackiej lub magisterskiej. Tabela taka nie jest jednak bazą danych i nie może być oceniona statystycznie przez programy przystosowane do pracy z bazami danych, a takim programem jest SAS.

Zapisanie zebranych danych w programie SAS wymaga określenia co jest obiektem badań oraz jakie oceny i pomiary wykonywane są dla każdego obiektu (określenia zmiennych). Bardzo często obiektem badań jest osobnik, a zmiennymi czas i miejsce jego złapania (bądź opcje jego hodowli), wykonane pomiary itd. Zdarza się jednak, że obiektem są różne komórki tego samego osobnika bądź zespoły osobników stwierdzane w jednej próbce. Wyróżnikiem obiektu powinno być to, że poszczególne obiekty pozyskuje się niezależnie od siebie.

Baza danych jest takim plikiem, którym wyróżnione są zmienne, a poszczególne obiekty zapisane są tak, że wyniki ich pomiarów umiejscowione są w miejscach związanych z nazwą odpowiedniej zmiennej. Często bazę danych pokazuje się w postaci tabeli, w której kolumny odpowiadają zmiennym i mają swoje nazwy (na górze), a poszczególne wiersze odpowiadają obiektom. Jeden wiersz – to wszystkie informacje o jednym obiekcie. Nie jest to jedyny sposób pokazywania bazy danych. Widok “formularza” pokazuje np. wszystkie zmienne dotyczące jednego obiektu, a przejście do następnego obiektu dokonuje się po naciśnięciu klawisza PgDn.

Program SAS zapisuje bazy danych w plikach z rozszerzeniem .DAT. Tworzenie bazy danych w programie SAS może być zrealizowane na wiele sposobów:

Sposób 1:

  • Uaktywnić okna eksploratora. Powrót do poprzedniej planszy umożliwia żółta ikonka “Poziom wyżej”, która pojawia się tylko przy aktywnym oknie eksploratora.
  • Uaktywnić okienka “Biblioteki” (poprzez dwukrotne klikniecie na odpowiednią ikonkę).
  • Uaktywnić jedną z istniejących bibliotek (poza SASHELP). Można uprzednio utworzyć nowa bibliotekę poprzez dwukrotne klikniecie na ikonkę “Nowy”, nazwanie biblioteki, zaznaczenie pola “Włącz przy uruchomieniu” i określenie ścieżki dostępu. Uwaga, biblioteka WORK lokuje wszystkie pliki w pamięci operacyjnej i są one usuwane po każdym wyłączeniu programu. Doskonale się jednak nadaje do tworzeniu próbnych programów przy uczeniu się SASa.
  • Dwukrotne kliknąć na ikonkę “Nowy”, która, gdy już znajdujemy się w jakiejś bibliotece, otwiera okno z trzema ikonkami: “Katalog”, “Zapytanie” i “Tabela”.
  • Dwukrotne kliknąć na ikonkę “Tabela” otwiera okno przypominające arkusz kalkulacyjny, w którym można zapisać dane w postaci tabeli.
  • Nazwy poszczególnych zmiennych powinny zostać umieszczone w nagłówkach zamiast liter A, B, C ….
  • Nazwy zmiennych powinny zaczynać się od litery i zawierać tylko litery i liczby oraz znak _ (bez polskich liter, odstępów, nawiasów, kropek, przecinków i innych znaków interpunkcyjnych). Liczba znaków w nazwach zmiennych nie powinna przekraczać 12.
  • Etykiety tych zmiennych będą takie same jak nazwy zmiennych
  • W kolejnych wierszach zapisane być powinny informacje dotyczące pojedynczego obiektu w odpowiednim porządku.
  • Zapamiętać dane (kliknięcie na ikonkę “Zapisz” uruchamia okno, w którym należy wpisać nazwę pliku i określić bibliotekę, w której plik zostanie napisany).

Sposób 2:

W oknie edytora należy napisać instrukcję wg schematu:

    data Nazwa_biblioteki.Nazwa_pliku;
input Nazwa_zmiennej1 Nazwa_zmiennej2 Nazwa_zmiennej3;
datalines;
      wart1dla1 wart1dla2 wart1dla3
wart2dla1 wart2dla2 wart2dla3
wart3dla1 wart3dla2 wart3dla3
wart4dla1 wart4dla2 wart4dla3
wart5dla1 wart5dla2 wart5dla3
    run;

 

  • Odpowiednie kolory pojawiają się gdy nie ma literówek w słowach data, input i datalines oraz gdy nie brakuje średników.
  • Za słowo datalines można wpisać cards.
  • Zamiast pisać run można zostawić sam średnik (w innych blokach nie jest to dozwolone).
  • Za nazwę biblioteki należy wstawić nazwę istniejącej już biblioteki (poza SASHELP). Gdy nazwy biblioteki brakuje plik zostanie umieszczony w bibliotece WORK i będzie istniał do pierwszego wyłączenia SASa.
  • Za Nazwę_pliku należy wstawić swoją nazwę. Nazwa ta powinna zaczynać się od litery i być złożona co najwyżej z liter, cyfr i znaku _ , bez polskich liter, kropek, przecinków, myślników i innych znaków interpunkcyjnych. Wstawienie odstępu spowoduje utworzenie dwóch plików (z nazwami do odstępu i po odstępie).
  • Za Nazwy_zmiennych należy wstawić swoje nazwy. Nazwy te powinny zaczynać się od litery i zawierać tylko litery i liczby oraz znak _ (bez polskich liter, odstępów, nawiasów, kropek, przecinków i innych znaków interpunkcyjnych). Liczba znaków w nazwach zmiennych nie powinna przekraczać 12.
  • Po nazwach zmiennych o wartościach tekstowych należy wstawić znak $.
  • Za wart(i)dla(j) należy wstawić odpowiednią liczbę lub nazwę będącą i-tą wartością j-tej zmiennej.
  • Wartości zmiennych tekstowych nie powinny zawierać odstępów. Liczba wartości w pojedynczym wierszu oddzielona pauzą powinna być taka, jak wykazana liczba nazw zmiennych. Większa liczba nazw zmiennych powoduje, że ostatnia kolumna zostaje pusta. Mniejsza powoduje brak danych w ostatnich kolumnach pliku.
  • Możliwy jest inny sposób odczytywania wartości z żółtego pola gdy zestaw nazw zmiennych (po słowie input) zostanie zakończony znakami @@;. Wtedy zbiory wartości odczytywane są od lewej do prawej z góry do doły, grupowane po tyle, ile jest zmiennych i w takiej kolejności wprowadzane są do pliku. Wygląda to tak:
    data Nazwa_biblioteki.Nazwa_pliku;
input Nazwa_zmiennej1 Nazwa_zmiennej2 Nazwa_zmiennej3 @@;
datalines;
      wart1dla1 wart1dla2 wart1dla3 wart2dla1
wart2dla2 wart2dla3 wart3dla1 wart3dla2
wart3dla3 wart4dla1 wart4dla2 wart4dla3
wart5dla1 wart5dla2 wart5dla3
    run;
  • Kliknięcie na ikonkę “Przekaż” (czarny biegnący ludzik) i prawidłowe utworzenie się pliku spowoduje pojawienie się w oknie Log komunikatów:
    1     data Nazwa_zbioru;
2     input nazwa_zmiennej1 nazwa_zmiennej2 nazwa_zmiennej3;
3     datalines;
UWAGA: Zbiór Nazwa_zbioru ma 5 obserwacji i 3 zmienne.
UWAGA: Instrukcja DATA użyto (całkowity czas przetwarzania):
czasu rzeczywistego 0.14 sek.
czasu cpu       0.03 sek.
  • Wszelkie błędy uniemożliwiające utworzenie zbioru pokażą się w tym oknie w kolorze czerwonym.
  • Wszelkie niejednoznaczności i wątpliwości, które jednak nie zablokują utworzenia pliku, pojawią się na zielono. Warto na nie zwrócić uwagę bo często pokazują, że utworzony plik nie jest taki jaki chcielibyśmy by był.
  • Nowy plik pojawi się w wyznaczonej bibliotece albo w bibliotece WORK (gdy nie zostanie podana żadna nazwa biblioteki). Można poprzez uaktywnienie eksploratora i wejście do bibliotek, danej biblioteki zobaczyć jego ikonkę.
  • Poprzez dwukrotne klikniecie na ikonkę Nazwa_pliku można ten plik otworzyć i sprawdzić, czy dane są prawidłowo wprowadzone.
  • Chcą utworzyć nową bibliotekę należy przed instrukcją data napisać instrukcję postaci:

      Libname nazwa_biblioteki ‘C:\…;’

  • Nazwą biblioteki może być dowolna nazwa 8-znakowa zaczynająca się od litery, złożona z liter, cyfr i znaku _ , bez odstępów, znaków interpunkcyjnych i innych.
  • Ścieżka dostępu musi prowadzić do istniejącego katalogu. Jest tak naprawdę skojarzenie biblioteki z odpowiednim katalogiem, w którym umieszczony zostanie tworzony plik.
  • Tak utworzona biblioteka nie uaktywnia się przy ponownym uruchomieniu SASa.

Przy utworzonym pliku w sposób opisany powyżej etykiety zmiennych są takie same jak nazwy zmiennych. Chcąc wprowadzić inne etykiety zmiennych (np. z polskimi literami, oznaczeniami jednostek w jakich są podane wartości zmiennych, odstępami) należy napisać:

    data Nazwa_biblioteki.Nazwa_pliku;
input Nazwa_zmiennej1 Nazwa_zmiennej2 Nazwa_zmiennej3;
label Nazwa_zmiennej1=’etykieta zmiennej 1′
Nazwa_zmiennej2=’etykieta zmiennej 2′
Nazwa_zmiennej3=’etykieta zmiennej 3′;
datalines;
      wart1dla1 wart1dla2 wart1dla3
wart2dla1 wart2dla2 wart2dla3
wart3dla1 wart3dla2 wart3dla3
wart4dla1 wart4dla2 wart4dla3
wart5dla1 wart5dla2 wart5dla3
    run;
  • Etykiety zmiennych mogą być dowolnymi wyrażeniami tekstowymi
  • W wynikach uzyskanych za pomocą procedur SASa zapisywane są etykiety zmiennych (a nie nazwy zmiennych)

 

Sposób 3

Popularność niektórych arkuszy kalkulacyjnych, przede wszystkim Excela, powoduje, że tworzenie bazy danych w tym programie jest szybsze i wydaje się dużo prostsze. Utworzona tabela musi mieć jednak format właściwy dla baz danych. Nazwy zmiennych powinny zostać zapisane w pierwszym wierszu w kolejnych kolumnach. W kolejnych wierszach powinny pojawić się wartości zmiennych. Tabela nie powinna mieć pustych miejsc, o ile puste miejsce nie oznacza braku danych (brak obserwacji, brak pomiaru itp.). Powtarzające się wartości powinny rzeczywiście się powtarzać. Wszelkie nagłówki określające określony typ danych powinny zostać sprowadzone do osobnych kolumn (nowych zmiennych) i wypełnione stosownymi wartościami (powtarzającymi się w wyróżnionych wcześniej grupach). Dla potrzeb SASa nazwy zmiennych w pierwszym wierszu powinny składać się tylko z łacińskich liter (bez polskich znaków), zaczynać się od litery, zawierać tylko litery, cyfry i znak _ , składać się z co najwyżej 12 znaków. Nie trudni to importu pliku do SASa, ale zmieni nazwy zmiennych wprowadzając znak _ za wszystkie odstępy i niedozwolone znali. Pisanie takich nazw zmiennych w programach będzie utrudnione. Utworzoną tabelę importuje się do SASa w następujących krokach.

  • Kliknąć na słowo “Plik”.
  • Kliknąć na “Importuj dane””.
  • Godząc się na to, że importujemy plik excelowy kliknąć dalej.
  • Wybrać katalog gdzie znajduje się stosowny plik excelowy. Wybrać ten plik i kliknąć “otwórz”.
  • Potwierdzić przez OK.
  • Wybrać arkusz excelowy na którym jest baza (zaimportować można tylko jeden arkusz), kliknąć “Dalej”.
  • W kolejnym oknie wybrać bibliotekę, gdzie będzie zapisany plik i nazwać ten plik. Jeżeli plik ten ma zastąpić inny o tej samej nazwie należy w kolejnym oknie zaznaczyć stosowny odnośnik i potwierdzić to.
  • Ostatnie plansza umożliwia zapamiętanie komend związanych z importowaniem pliku w odpowiednim programie z rozszerzeniem .SAS. Nie musi być to wykonywane. Można wcisnąć koniec bez wpisywania czegokolwiek do widocznego wiersza.
  • Po kliknięciu koniec stosowny plik powinien pojawić się w odpowiedniej bibliotece.
  • Jeżeli w Excelu nazwy zmiennych zawierały niedozwolone znaki, w to miejsce pojawi się _ , natomiast stara nazwa zostanie etykietą zmiennej.

 

Edycja bazy danych

Zmiana wartości zmiennej

Najbardziej typowa poprawka – zamiana pewnej wartości na inną – może być wykonana w następujący sposób:

  • Przejść do okna eksploratora, otworzenie bibliotek, otworzenie biblioteki w której jest plik, otworzenie pliku, w którym ma być dokonana poprawka.
  • Kliknąć na słowo edycja i wybrać “tryb edycji”.
  • Znaleźć miejsce gdzie ma być dokonana poprawka, kliknąć na niego.
  • Wykonać poprawkę.
  • Zapamiętać.

Dodawanie i usuwanie wierszy

Można usunąć niepotrzebny wiersz:

  • Otworzyć plik.
  • Kliknąć na słowo edycja i wybrać “tryb edycji”.
  • Zaznaczyć niepotrzebną linijkę.
  • Kliknąć na słowo edycja i wybrać “usuń wiersz”.
  • Zapamiętać.

W podobny sposób można dodać na końcu tabeli nowy wiersz i skopiować istniejący już wiersz (który zostaje dołączony na koniec tabeli).

Zmiany nazw kolumn

Tabele importowane z Excela często w pierwszym wierszu zawierają znaki, które w SASie nie mogą być nazwami zmiennych. Program nazwy te zmienia, pozostawiając stare nazwy jako etykiety kolumn. Przy pisaniu programów używa się nazw zmiennych i aby je zobaczyć należy:

  • Otworzyć plik
  • Kliknąć na słowo “Widok”
  • Wybrać “Nazwy kolumn”

Pojawią się wtedy nazwy zmiennych, w których niedozwolone znaki zamienione zostały na _. Chcąc zmienić nazwy kolumn należy W polu edytora napisać:

   data Nazwa_biblioteki.Nowa_nazwa_pliku (drop=Stara_nazwa_zmiennej);
set Nazwa_biblioteki.Stara_nazwa_pliku;
Nowa_nazwa_zmiennej=Stara_nazwa_zmiennej;
run;

lub

   data Nazwa_biblioteki.Nowa_nazwa_pliku;
set Nazwa_biblioteki.Stara_nazwa_pliku;
Nowa_nazwa_zmiennej=Stara_nazwa_zmiennej;
drop Stara_nazwa_zmiennej;
run;

  • Zamknąć plik (o ile jest otwarty).
  • Kliknąć na ikonkę “Przekaż” (pędzącego ludzika). Powinien pojawić się zbiór o nowej nazwie z nową nazwą zmiennej.
  • Pominięcie opcji (drop= stara_nazwa_zmiennej) spowoduje, że w pliku pozostanie zmienna o starej nazwie z takimi samymi wartościami jak zmienna o nowej nazwie.
  • Nowa nazwa pliku może być taka sama jak stara nazwa. Powoduje to nadpisanie nowego pliku w miejsce starego.
  • Można w ten sposób zmienić nazwy kilku zmiennych wg schematu:

   data Nazwa_biblioteki.Nowa_nazwa_pliku (drop = Stara_nazwa_zmiennej1 Stara_nazwa_zmiennej2 Stara_nazwa_zmiennej3);
set Nazwa_biblioteki.Stara_nazwa_pliku;
Nowa_nazwa_zmiennej1 = Stara_nazwa_zmiennej1;
Nowa_nazwa_zmiennej2 = Stara_nazwa_zmiennej2;
Nowa_nazwa_zmiennej3 = Stara_nazwa_zmiennej3;
run;

Wklejenia i usuwanie zmiennych jest dość drastyczną, choć skuteczną, metodą zmiany wyłącznie nazwy zmiennej. Istnieje także opcja ‘rename’, która pozwala na zmianę nazwy zmiennej. Stosuje się ją według schematu:

   data Nazwa_biblioteki.Nowa_nazwa_pliku (rename=(Stara_nazwa_zmiennej = Nowa_nazwa_zmiennej));
set Nazwa_biblioteki.Stara_nazwa_pliku;
run;

lub

    data Nazwa_biblioteki.Nowa_nazwa_pliku;
set Nazwa_biblioteki.Stara_nazwa_pliku;
rename Stara_nazwa_zmiennej = Nowa_nazwa_zmiennej;
run;

Dodawanie pustych kolumn

Czasami edycja pliku może polegać na ręcznym wprowadzeniu wartości jakiejś nowej zmiennej. Należy wtedy do pliku dołączyć pustą kolumnę. Dołączenie pustej kolumny tekstowej przeznaczonej na zapis słów co najwyżej 5-znakowych wygląda następująco:

    data Nazwa_biblioteki.Nowa_nazwa_pliku;
set Nazwa_biblioteki.Stara_nazwa_pliku;
Nowa_nazwa_zmiennej=’     ‘;
run;

Natomiast gdy kolumna przeznaczona jest na liczby można napisać:

    data Nazwa_biblioteki.Nowa_nazwa_pliku;
set Nazwa_biblioteki.Stara_nazwa_pliku;
Nowa_nazwa_zmiennej=. ;
run;

Nowa nazwa pliku może być taka sama jak stara nazwa. Powoduje to nadpisanie nowego pliku (bez niepotrzebnej zmiennej) w miejsce starego.

Dodawanie i zmiany etykiet kolumn

Każda zmienna (kolumna) obok nazwy posiada jeszcze etykietę, która może być dłuższa, zawierać polskie litery i różne znaki wyjaśniające np. w jakich jednostkach podane są wartości danej zmiennej. Etykiety zmiennych są wpisywane w zbiorach wynikowych, podczas gdy nazw zmiennych należy używać w programach pisanych w edytorze. SAS standardowo za etykietę zmiennej wprowadza jej nazwę, która zapisana symbolicznie nie zawiera jednak pełnej informacji o zmiennej. Warto zatem wprowadzić własne etykiety, by w wynikach nie wprowadzać już poprawek i uzupełnień.

Zmianę etykiety zmiennej można uzyskać za pomocą programu:

    data Nazwa_biblioteki.Nowa_nazwa_pliku;
set Nazwa_biblioteki.Stara_nazwa_pliku;
label nazwa_zmiennej=’etykieta zmiennej’;
run;

Instrukcję:

     label nazwa_zmiennej=’etykieta zmiennej’;

można dodawać do programów, w których zmienne są tworzone, modyfikowane są ich nazwy itp.

 

Kopiowanie części danych do nowego zbioru

Najbardziej ekonomiczne w pracy biologa jest utworzenie jednej dużej bazy danych zawierające wszystkie wykonane obserwacje, którą się uzupełnia, poprawia, dodaje kolumny z komentarzami itd. Dla konkretnych analiz wybiera się niektóre obserwacje i niektóre zmienne, choć trzeba pamiętać, że większość procedur SASa umożliwia selekcjonowanie danych. Zrobienie zbyt dużej liczby podzbiorów bazy danych może utrudnić pracę. Czasami jednak wykonanie okrojonych kopii podstawowej bazy jest koniecznością – przyśpiesza wykonanie odpowiednich analiz. Wykonuje się ją wpisując instrukcje w polu edytora.

Kopiowanie wybranych wierszy

   data Nazwa_biblioteki.Nowa_nazwa_pliku (where=(Warunek));
set Nazwa_biblioteki.Stara_nazwa_pliku;
run;

lub

   data Nazwa_biblioteki.Nowa_nazwa_pliku;
set Nazwa_biblioteki.Stara_nazwa_pliku;
where Warunek;
run;

lub

   data Nazwa_biblioteki.Nowa_nazwa_pliku;
set Nazwa_biblioteki.Stara_nazwa_pliku;
if Warunek;
run;

  • Warunek może mieć postać równania lub nierówności (np. nazwa_zmiennej < 4), może obejmować kilka warunków ułożonych w zdanie logiczne (np. nazwa_zmiennej1 > 1 and nazwa_zmiennej2 < 3) może też zawierać wyrażenia arytmetyczne (np. nazwa_zmiennej1 + nazwa_zmiennej2 > 10 ) i funkcje SASa.
  • Dla zmiennych liczbowych warunek może mieć postać złożoną, powstałą przy użyciu specjalnych operatorów: (np: nazwa_zmiennej between 5 and 10) powodującą wybranie wartości tylko z zadanego przedziału:
  • Dla zmiennych tekstowych można zastosować operator “?” sprawdzający czy dany tekst zawiera się w drugim (np. nazwa_zmiennej ? ‘ra’ oznacza wpisanie do nowego zbioru tylko tych wierszy, dla których w wyznaczonej kolumnie są słowa zawierające frazę “ra”)
  • Porównanie tekstu ze wzorcem możliwe jest przy użyciu operatora “like”. Przykładowo nazwa_zmiennej like ‘_ra%’ oznacza, że z kolumny o danej nazwie wybierane są słowa mające frazę ‘ra’ na 2 i 3 miejscu. _ zastępuje dokładnie jeden znak, a % dowolny ciąg znaków (w tym pusty).

Kopiowanie wybranych kolumn

Skopiowanie tylko niektórych zmiennych (w przykładzie 3) do nowego pliku realizowane jest w następujący sposób:

   data Nazwa_biblioteki.Nowa_nazwa_pliku (keep=nazwa_zmiennej1 nazwa_zmiennej2 nazwa_zmiennej3);
set Nazwa_biblioteki.Stara_nazwa_pliku;
run;

lub

   data Nazwa_biblioteki.Nowa_nazwa_pliku;
set Nazwa_biblioteki.Stara_nazwa_pliku;
keep nazwa_zmiennej1 nazwa_zmiennej2 nazwa_zmiennej3;
run;

Pominięcie niektórych zmiennych (w przykładzie 3) do nowego pliku realizowane jest w następujący sposób:

   data Nazwa_biblioteki.Nowa_nazwa_pliku (drop=nazwa_zmiennej1 nazwa_zmiennej2 nazwa_zmiennej3);
set Nazwa_biblioteki.Stara_nazwa_pliku;
run;

lub

   data Nazwa_biblioteki.Nowa_nazwa_pliku;
set Nazwa_biblioteki.Stara_nazwa_pliku;
drop nazwa_zmiennej1 nazwa_zmiennej2 nazwa_zmiennej3;
run;

 

Sortowanie danych

Niektóre procedury SASa wymagają posortowania danych. Sortowanie dotyczy zawsze całych wierszy. Może być zrealizowane na kilka sposobów. Pierwszy z nich polega na wykorzystaniu narzędzi programu SAS. Należy:

  • Otworzyć plik
  • Kliknąć na słowo edycja i wybrać “tryb edycji”
  • Kliknąć na słowo “dane” i wybrać “sortuj”
  • Do ukazującego się okna wprowadzić zmienne, według których nastąpić ma posortowanie danych
  • Kliknąć OK.

Drugi sposób polega na napisaniu odpowiednich instrukcji w oknie edytora:

   proc sort data=Nazwa_biblioteki.Nazwa_pliku;
by Nazwa_zmiennej1 Nazwa_zmiennej2 Nazwa_zmiennej3;
run;

  • Poszczególne wiersze zostaną uporządkowane według rosnących wartości zmiennej1, w grupie tych samych wartości zmiennej 1 uporządkowanie wierszy polega na ułożeniu wartości zmiennej 2 w ciąg rosnący itd.
  • Liczba zmiennych, wg których porządkowany jest plik jest dowolna

Jeżeli chcemy aby uporządkowanie zmiennej nastąpiło od wartości największej do najmniejszej poprzedzamy ja słowem descending. Przykładowy kod wygląda następująco:

   proc sort data=Nazwa_biblioteki.Nazwa_pliku;
by Nazwa_zmiennej1 descending Nazwa_zmiennej2 Nazwa_zmiennej3;
run;

Jeżeli chcemy by posortowany zbiór został zapamiętany pod nową nazwą należy napisać:

   proc sort data=Nazwa_biblioteki.Nazwa_pliku out Nazwa_biblioteki.Nowa_nazwa_pliku;
by Nazwa_zmiennej1 Nazwa_zmiennej2 Nazwa_zmiennej3;
run;

Czasami istnieje konieczność utworzenia zbioru, w którym nie ma powtarzających się obserwacji. Można to wykonać dodając do procedury sort opcję nodup:

   proc sort data=Nazwa_biblioteki.Nazwa_pliku out Nazwa_biblioteki.Nowa_nazwa_pliku nodup;
by Nazwa_zmiennej1 Nazwa_zmiennej2 Nazwa_zmiennej3;
run;

  • W nowym pliku nie będzie tych obserwacji, które sąsiadują po odpowiednim uporządkowaniu i których wartości wszystkich zmiennych są takie same jak pewnej innej obserwacji.

Chcąc mieć plik złożony z niepowtarzających się wartości pewnej zmiennej należy napisać:

   data Nazwa_biblioteki.Nowa_nazwa_pliku;
set Nazwa_biblioteki.Stara_Nazwa_pliku;
keep Nazwa_zmiennej;
run;
proc sort data=Nazwa_biblioteki.Nowa_nazwa_pliku nodup;
by Nazwa_zmiennej;
run;

Łączenie baz danych

Łączenie pionowe

Chcąc połączyć w jeden zbiór 2 lub więcej zbiorów będących bazami danych o tych samych nazwach zmiennych w jeden długi plik należy napisać:

   data Nazwa_biblioteki.Nowa_Nazwa_pliku;
set Nazwa_biblioteki.Nazwa_pliku1 Nazwa_biblioteki.Nazwa_pliku2;
run;

  • W nowym pliku będzie tyle zmiennych, ile jest różnych nazw zmiennych we wszystkich starych plikach.
  • Jeżeli choć w jednym zbiorze nazwa zmiennej jest inna niż w pozostałych (etykiety są nieważne), w nowych zbiorze pojawi się zmienna o tej nazwie z częścią wartości oraz brakiem danych.

Chcąc w nowym pliku mieć obserwacje ułożone w rosnącym porządku pewnej zmiennej istniejącej we wszystkich starych zbiorach należy napisać:

   data Nazwa_biblioteki.Nowa_Nazwa_pliku;
set Nazwa_biblioteki.Nazwa_pliku1 Nazwa_biblioteki.Nazwa_pliku2;
by Nazwa_zmiennej;
run;

Łączenie poziome

Chcą dołączyć do pliku 2 zmienne występujące w pliku 1 należy napisać:

   data Nazwa_biblioteki.Nowa_Nazwa_pliku;
merge Nazwa_biblioteki.Nazwa_pliku1 Nazwa_biblioteki.Nazwa_pliku2;
run;

  • W nowym pliku liczba zmiennych będzie taka jak liczba różnych nazw zmiennych w obu starych plikach
  • Liczba wierszy będzie taka jak maksymalna liczba wierszy w którymś starych plików
  • Wartości poszczególnych zmiennych zostaną ustalone według porządku w obu plikach.
  • Jeżeli w obu zbiorach istnieją zmienne o tej samej nazwie to w zbiorze wynikowym wartości tej zmiennej będą takie jak w drugim zbiorze. Jedynie braki danych z drugiego zbioru zostaną uzupełnione wartościami z pierwszego zbioru.

Chcąc złączyć pliki zgodnie z wartościami pewnej zmiennej (której nazwa występuje we wszystkich zbiorach) można napisać:

   data Nazwa_biblioteki.Nowa_Nazwa_pliku;
merge Nazwa_biblioteki.Nazwa_pliku1 Nazwa_biblioteki.Nazwa_pliku2;
by Nazwa_wspólnej_zmiennej;
run;

  • W nowym pliku zmienne pliku 2 zostaną dołączone do pliku 1, gdy wspólna zmienna ma taką samą wartość.
  • Gdy wartości wspólnej zmiennej w którymś pliku powtarzają się – zostaną połączone zgodnie z porządkiem występowania w plikach.

Łączenie typu każdy wiersz 1 bazy z każdym wierszem 2 bazy (także wg klucza)

Czasami najbardziej sensowne jest takie łączenie plików, aby powtarzającym się wartościom wspólnej zmiennej z pliku 1 przyporządkować każdą obserwację z pliku 2, która ma tę wartość. Tego typu łączenie plików związane z rozmnażaniem się obserwacji można zrealizować za pomocą bloku:

   proc sql;
create table Nazwa_biblioteki.Nowa_nazwa_pliku
as select*from Nazwa_biblioteki.Nazwa_pliku1 as z1, Nazwa_biblioteki.Nazwa_pliku2 as z2
where z1.Nazwa_wspólnej_zmiennej=z2.Nazwa_wspólnej_zmiennej;
quit;
run;

  • Gdy zmienna, wg której dochodzi do łączenia, ma w którymś ze starych zbiorów kilka razy tę samą wartość, dochodzi do “rozmnożenia się” wierszy zgodnie z zasadą (każdy z każdym) w obrębie grupy wierszy o danej wartości zmiennych łączących.
  • Gdy wartość zmiennej łączącej nie występuje w obu zbiorach (tylko w jednym), to tego typu wiersz nie wchodzi do zbioru wynikowego
  • Zmienna łącząca, względem której przyporządkowuje się wartości, nie musi w obu plikach mieć tej samej nazwy (choć powinna oznaczać to samo).

Łączenie baz wg klucza

Można łączyć tabele uwzględniając równość względem dwóch zmiennych istniejących w obu zbiorach zgodnie z procedurą:

   proc sql;
create table Nazwa_biblioteki.Nowa_nazwa_pliku
as select*from Nazwa_biblioteki.Nazwa_pliku1 as z1, Nazwa_biblioteki.Nazwa_pliku2 as z2
where z1.Nazwa_wspólnej_zmiennej1=z2.Nazwa_wspólnej_zmiennej1 and z1.Nazwa_wspólnej_zmiennej2=z2.Nazwa_wspólnej_zmiennej2;
quit;
run;

 

Wyliczanie nowych zmiennych

Po wpisaniu danych do pliku bardzo często trzeba za ich pomocą wyliczyć dodatkowe zmienne. W SASie jest to bardzo proste. Wystarczy posłużyć się schematem:

   data Nazwa_biblioteki.Nowa_nazwa_pliku;
set Nazwa_biblioteki.Stara_nazwa_pliku;
Nowa_nazwa_zmiennej=f(Nazwa_zmiennej1, Nazwa_zmiennej2,…)
run;

    • Użycie dwa razy tej samej nazwy pliku spowoduje, że do pliku zostanie dołączona nowa zmienna. Można utworzyć nowy plik wpisując nową nazwę po słowie data.
    • Za funkcję f można wpisać dowolnie skomplikowane wyrażenie powstałe przy użyciu operatorów, nawiasów i funkcji (patrz rozdz.12).
    • Niekiedy przydają się funkcje statystyczne:

 

    •     MAX(x1,x2,…,xk) – największa z liczb

 

    •     MIN(x1,x2,…,xk) – najmniejsza z liczb

 

    •     MEAN(x1,x2,…,xk) – średnia z liczb

 

    •     STD(x1,x2,…,xk) – odchylenie standardowe z liczb

 

    •     SUM(x1,x2,…,xk) – suma z liczb

 

    •     VAR(x1,x2,…,xk) – wariancja z liczb

 

    Można ich użyć gdy x1,x2,…,xk są nazwami zmiennych istniejących już w pliku

Bardzo użyteczne bywa automatyczne ponumerowanie obserwacji:

   data Nazwa_biblioteki.Nowa_nazwa_pliku;
set Nazwa_biblioteki.Stara_nazwa_pliku;
retain Nr 0;
Nr+1;
run;

  • W pliku zostanie utworzona nowa zmienna o nazwie nr z kolejnymi numerami obserwacji.
  • Program działa prawidłowo gdy w pliku nie było dotąd zmiennej o nazwie nr. W przeciwnym wypadku do wartości istniejącej zmiennej zostanie dodane 1.

Można ponumerować tylko niektóre obserwacje, dla których pewna zmienna ma określoną wartość (wart):

   data Nazwa_biblioteki.Nowa_nazwa_pliku;
set Nazwa_biblioteki.Stara_nazwa_pliku;
retain Nr 0;
if Nazwa_zmiennej=wart then Nr+1;
run;

 

 

Spis treści