SAS Podstawowe informacje przed ćwiczeniem 2



Podobne dokumenty
SAS Podstawowe informacje przed ćwiczeniem 1

Wprowadzenie do Systemu SAS i programowania w SAS 4GL

ZESTAW 1 SAS 4GL. Język stworzony na potrzeby przetwarzania dużych zbiorów danych. Składają się nań:

Wprowadzenie do SAS. Wprowadzenie. Historia SAS. Struktura SAS 8. Interfejs: SAS Explorer. Interfejs. Część I: Łagodny wstęp do SAS Rafał Latkowski

Tytuł: PRZETWARZANIE DANYCH W SAS Autor: Wioletta Grzenda, Aneta Ptak-Chmielewska, Karol Przanowski, Urszula Zwierz. Wstęp

SAS Macro Language w pigułce

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

program TRX

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.

Bloki anonimowe w PL/SQL

Księgowanie i eksport wynagrodzeń do systemu FK

Stosowanie indeksów ma swoje korzyści, ale bywa również kosztowne.

Ćwiczenie: JavaScript Cookies (3x45 minut)

Informatyzacja Przedsiębiorstw

ANALIZA DANYCH W STATA 8.0 CZĘŚĆ II

INSTRUKCJA IMPORTU PRODUKTÓW DO SKLEPU

Spis treści. 1: Wyszukiwanie elementu : Do linii modelu : Powiel arkusze : Długość kabla : Rozmieszczenie widoków...

Wprowadzenie do programowania w SAS-ie oraz estymacji rozkładów

Tablice (jedno i wielowymiarowe), łańcuchy znaków

SAS 4GL Podsumowanie.

PAKIETY STATYSTYCZNE

ZAJĘCIA 2. Przed rozpoczęciem zajęć należy wykonać instrukcje z poprzednich laboratoriów bądź z pliku zaj2_prep.sas. FILTROWANIE WIERSZY

NOWY SZABLON IMPORTU PLIKÓW

41. Zmienne lokalne muszą mieć nazwę, którą poprzedza (maksymalnie 128 znaków) oraz typ (każdy z wyjątkiem: text, ntext oraz image)

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

PAKIETY STATYSTYCZNE

SAS. Wprowadzenie do Systemu I Języka 4GL. Seweryn Kowalski /9/2006 1

Rozpoczynamy import Kreator uruchamiamy przyciskiem Z tekstu, znajdującym się na karcie Dane, w grupie Dane zewnętrzne.

SZKOLENIE WPROWADZENIE DO R UNIWERSYTET SZCZECIŃSKI al. Papieża Jana Pawła II nr 22a Szczecin

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

INSTRUKCJA OTWIERANIA PLIKU DPT (data point table)

WebMobile7 and Sello Integrator wersja 1.1.2

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium cyfrowej techniki pomiarowej. Ćwiczenie 4

SUBIEKT GT IMPORT XLS Towarów

Kier. MTR Programowanie w MATLABie Laboratorium

NOWY SZABLON IMPORTU PLIKÓW

INFORMATYKA Studia Niestacjonarne Elektrotechnika

Bazy danych. Polecenia SQL

Systemy operacyjne. Laboratorium 9. Perl wyrażenia regularne. Jarosław Rudy Politechnika Wrocławska 28 lutego 2017

Microsoft Excel 2003 profesjonalna analiza i raportowanie oraz prezentacja danych

Otwórz R. Zmień katalog roboczy za pomocą File/Change Dir. Wczytaj plik przypisując go obiektowi o nazwie students:

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

Składowane procedury i funkcje

Wprowadzenie do SAS. Jak zacząć? Enhanced Editor (1) Uruchamianie programu. Ćwiczenie 3. Definiowanie bibliotek

Program szkoleniowy. 24 h dydaktycznych (18 h zegarowych) NAZWA SZCZEGÓŁY CZAS

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

trainxx tramxx

Viatoll Calc v1.3. Viatoll Calc. Instrukcja użytkownika. Strona 1

Tabela wewnętrzna - definicja

Pliki. Operacje na plikach w Pascalu

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Poradnik użytkownika systemu BibbyNet. Część III Raporty, export plików, pozostałe

Tablice. Jones Stygar na tropie zmiennych

STROJENIE PRZETWARZAŃ SAS

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Wykład 4. Tablice. Pliki

Zasady programowania Dokumentacja

SUBIEKT NEXO IMPORT XLS - Towary

Programowanie w języku Python. Grażyna Koba

XML i nowoczesne technologie zarządzania treścią 2007/08

PODRĘCZNIK UŻYTKOWNIKA PEŁNA KSIĘGOWOŚĆ. Płatności

Rozwiązanie. Uruchom program Access 2007.

Moduł Handlowo-Magazynowy Przeprowadzanie inwentaryzacji z użyciem kolektorów danych

SUBIEKT GT IMPORT XLS Dokumenty

W oknie konfiguratora Importu/Exportu należy wprowadzić odpowiednie ustawienia poprzez zaznaczenie pól kursorem myszki przy poszczególnych opcjach.

Programowanie w języku C++ Grażyna Koba

Skanowanie OCR w aplikacji Kancelaria Komornika. Instrukcja dla użytkownika

Instrukcja importu deklaracji pacjentów. do dreryka

Archiwum DG 2016 PL-SOFT

Importowanie danych z Excela

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe

Konwerter XML Dla Programów Symfonia Kadry i Płace oraz Forte Kadry i Płace

a) Data spaceru psa z listy moich psów... 4 b) Data spaceru psa z poza mojej listy (np. wyprowadzonego na prośbę/w zastępstwie itp.)...

Wymagania edukacyjne z informatyki w klasie VIII

TIME MARKER. Podręcznik Użytkownika

Funkcje wyszukiwania i adresu PODAJ.POZYCJĘ

Języki programowania wysokiego poziomu. PHP cz.2.

MS Excel cz.1 funkcje zaawansowane

EXCEL TABELE PRZESTAWNE

Edytor materiału nauczania

3. Opracować program kodowania/dekodowania pliku tekstowego. Algorytm kodowania:

Przewodnik... Segmentacja listy Odbiorców

Algorytm. a programowanie -

1 Przygotował: mgr inż. Maciej Lasota

Pakiety Matematyczne - R Zestaw 2.

WellCommerce Poradnik: Dodawanie języka i waluty. autor: Adrian Potępa (biuro@eclairsoaware.pl)

2. Kliknij Insert->Userform. Jeżeli Toolbox nie pojawi się automatycznie, kliknij View -> Toolbox. Otrzymany widok powinien być jak poniżej.

Import danych w formacie txt

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

Podstawy programowania. Podstawy C# Tablice

Nowa płatność Dodaj nową płatność. Wybierz: Płatności > Transakcje > Nowa płatność

ANALIZA DANYCH W STATA 8.0 CZĘŚĆ II

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

Tworzenie Ofert Handlowych w Impulsie instrukcja obsługi

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Synchroniczne wprowadzanie kontrahentów - SWK Moduł VBA do Symfonia FK Forte.

Temat zajęć: Tworzenie skryptów powłoki systemu operacyjnego.

Programowanie niskopoziomowe

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Transkrypt:

SAS Podstawowe informacje przed ćwiczeniem 2

Wczytywanie i zapisywanie plików tekstowych przy pomocy PROC IMPORT PROC IMPORT DATAFILE="filename" TABLE="tablename" OUT=<libref.>SAS data set < (SAS data set options)> <DBMS=identifier>< REPLACE> ; <data source statement(s);> Przykład PROC IMPORT DATAFILE="c:\sas\ego.csv" OUT=jeeshim.egov DBMS=CSV REPLACE; GETNAMES=YES; DATAROW=2; DATAFILE określa plik do zaimportowania OUT zbiór SAS, który zostanie utworzony DBMS typ importowanego pliku. Np.:, "DBMS=DLM" plik tekstowy z separatorami (separator podaje się w instrukcji DELIMITER bloku PROC IMPORT, np.: DELIMITER= ; lub DELIMITER='09'x; ) "DBMS=CSV" separatorem są przecinki "DBMS=TAB" separatorem są tabulacje REPLACE nadpisanie istniejącego pliku GETNAMES wczytuje nazwy zmiennych z pierwszej linii pliku DATAROW określa pierwszy wiersz, który zostanie wczytany przez SASa Przykład poniżej eksportuje zbiór danych do pliku tekstowego z polami oddzielonymi spacją. The DATA i OUTFILE oznaczają, odpowiednio, zbiór danych do wyeksportowania i zewnętrzny plik, do którego dane zostaną wyeksportowane. PROC EXPORT DATA=jeeshim.egov OUTFILE="c:\sas\ego.txt" DBMS=DLM REPLACE; Wczytywanie i zapisywanie plików EXCEL przy pomocy PROC IMPORT PROC IMPORT DATAFILE="c:\sas\assets.xls" OUT=js.pc DBMS=EXCEL2000 REPLACE; SHEET="computer"; GETNAMES=YES; instrukcja SHEET określa arkusz do zaimportowania. Domyślnie jest to "sheet1", "sheet2", itd. EXCEL2000 oznacza format excel'a. Inne formaty: EXCEL4, EXCEL5, and EXCEL97. GETNAMES=YES wczytuje nazwy zmiennych z pierwszego wiersza arkusza. Poniższy przykład eksportuje zbiór danych do pliku excelowego.. PROC EXPORT DATA=js.egov OUTFILE="c:\sas\egov.xls" DBMS=EXCEL2000 REPLACE; Instrukcja STOP Instrukcja STOP kończy przetwarzanie bloku data. Przetwarzana jest pierwsza instrukcja po bloku DATA.

Instrukcja SET SET< SAS data set(s) <(data set options(s) )>> <options>; Bez argumentów SET wczytuje obserwację z ostatnio utworzonego zbioru danych. Argumenty SAS data set nazwa zbioru danych SAS (data set options) Opcje określające akcje podejmowane przez SAS'a podczas odczytu zmiennych lub obserwacji do PDV. DROP= wyłącza zmienne z przetwarzania data plan1 plan2; set payroll(drop=salary gender); if hired< 01jan98 d then output plan1; else output plan2; FIRSTOBS= Określa, którą obserwację SAS przetwarza jako pierwszą. W przykładzie użyto FIRSTOBS= i OBS= aby odczytać obserwacje od 5 do 10 ze zbioru STUDY. data new; set study(firstobs=5 obs=10); IN= Tworzy zmienną która wskazuje czy zbiór danych jest źródłem danych dla aktualnej obserwacji. W przykładzie IN= ustala wartość 'i' na 1 gdy obserwacja została wczytana ze zbioru albo 0 w przeciwnym przypadku. Instrukcja IF THEN sprawdza wartość 'i' aby sprawdzić czy NONUSA jest źródłem danych aktualnej obserwacji. data allflts; set usa nonusa(in=i); by fltnum; if i then overseas= * ; data all2; set males(in=m) females(in=f); if m then sex= M ; if f then sex= F ; KEEP= Określa zmienne do przetwarzania. OBS= Określa ostatnią obserwację, która zostanie przetworzona.

RENAME= Zmienia nazwę zmiennej RENAME=(old name 1=new name 1 <...old name n=new name n>) W poniższym przykładzie RENAME= zostało użyte aby pokazać, że nazwa zmiennej jest zmieniana w momencie zapisywania do zbioru wynikowego. W czasie przetwarzania bloku DATA zmienna zachowuje oryginalną nazwę. data two(rename=(x=keys)); set one; z=x+y; W tym przykładzie zmienna ma nową nazwę KEYS w całym bloku DATA. data three; set one(rename=(x=keys)); z=keys+y; WHERE= Data Set Option Wybiera obserwacje spełniające określone kryteria. data whizmo; set sales(where=(product= whizmo )); Options KEY=index</UNIQUE> Umożliwia niesekwencyjny dostęp do obserwacji w zbiorze SAS bazujący na wartości zmiennej indeksowej lub klucza. W tym celu należy podać nazwę prostego lub złożonego klucza w zbiorze danych, który jest odczytywany. KEY= nie może być używany razem z POINT= (patrz: Indeksy) UNIQUE Sprawia, że KEY= szuka zawsze od początku indeksu w odczytywanym zbiorze danych. Domyślnie SET rozpoczyna szukanie od początku indeksu gdy wartość KEY ulega zmianie. Jeśli wartość KEY= nie zmienia się w kolejnych wykonaniach instrukcji SET przeszukiwanie rozpoczyna się od obserwacji następnej po ostatnio odczytanej. Ma to znaczenie przy odczycie obserwacji ze zduplikowanymi wartościami KEY=. END=variable Tworzy i nazywa tymczasową zmienną będącą znacznikiem końca pliku. Zmienna przyjmująca początkową wartość 0, jest ustawiana na 1 gdy SET odczytuje ostatnią obserwację ostatniego wymienionego zbioru danych. Ta zmienna nie jest dodawana do zbioru wyjściowego. END= nie może być używana z POINT=. NOBS=variable Tworzy i nazywa tymczasową zmienną, której wartością jest zazwyczaj całkowita liczba obserwacji w zbiorze (lub zbiorach) wejściowych. Liczba obserwacji zawiera również te zaznaczone do usunięcia, lecz jeszcze nie usunięte. Deskryptor zbioru danych jest wczytywany w trakcie kompilacji bloku DATA jeszcze przed wykonaniem bloku. Na tej podstawie jest inicjowana zmienna przypisana przez NOBS=. Dzięki temu można odwoływać się do tej zmiennej jeszcze przed instrukcją SET. Zmienna nie jest dodawana do zbioru wyjściowego. POINT=variable Tworzy i nazywa tymczasową zmienną, której wartość determinuje numer odczytywanej obserwacji. POINT= umożliwia bezpośredni (random) dostęp do zbioru danych. Nie można używać POINT= z instrukcją BY, WHERE lub opcją WHERE= instrukcji SET. Nie można też

użyć POINT= i KEY= jednocześnie. Można użyć zmiennej określonej przez POINT= w pętli aby kolejno odczytywać obserwacje jakiegoś zbioru. Opis Za każdym razem gdy jest wykonywana instrukcja SET SAS wczytuje jedną obserwację do PDV. Instrukcja SET może dotyczyć wielu zbiorów danych, a blok DATA może zawierać wiele instrukcji SET. Instrukcja SET ma wiele zastosowań w języku SAS. Są one określone przez opcje i instrukcje używane razem z instrukcją SAS i dotyczą: odczytu obserwacji i zmiennych z istniejących zbiorów danych do dalszej obróbki w bloku DATA, dołączania zbiorów i odczytywania zbiorów w trybie jeden do jednego, odczytywania zbiorów w trybie dostępu bezpośredniego (random access). BY przetwarzanie grup z instrukcją SET Tylko jedna instrukcja BY może towarzyszyć instrukcji SET w bloku DATA. Instrukcja BY powinna następować bezpośrednio po SET, której dotyczy. Zbiory danych podane w instrukcji SET muszą być posortowane po wartościach zmiennych, które są podane w instrukcji BY lub muszą mieć indeks. Instrukcja SET użyta z instrukcją BY pozwala na przeplatanie zbiorów danych będących argumentem instrukcji SET. Obserwacje w zbiorze wynikowym są uporządkowane wg wartości zmiennych BY a wewnątrz grupy BY, w kolejności zbiorów danych, w których występują. Łączenie zbiorów danych Użycie pojedynczej instrukcji SET z wieloma zbiorami danych pozwala połączyć (dołączyć jeden do drugiego) wyszczególnione zbiory. Tzn. liczba obserwacji w zbiorze wynikowym jest sumą obserwacji we wszystkich zbiorach wejściowych i na początku są obserwacje z pierwszego zbioru, potem z drugiego itd. Użycie wielu instrukcji SET z odpowiednimi parametrami pozwala wykonać złączenie jeden do jednego. Przykłady Przykład 6: Łączenie jednej obserwacji z wieloma obserwacjami Można odczytać obserwacje z jednego zbioru i połączyć je z obserwacjami z innego używając metod dostępu bezpośrednego: data south; set revenue; if region=4; set expense point=_n_; Przykład 7: Table Lookup Ten przykład pokazuje użycie opcji KEY= w celu odczytania danych z tabeli powiązanej na podstawie pewnej wartości w tabeli głównej. Blok DATA wczytuje główny zbiór danych nazwany INVTORY i dane ze zbioru powiązanego PARTCODE. Używa przy tym indeksu PARTNO w celu niesekwencyjnego odczytania zbioru PARTCODE na podstawie wartości PARTNO ze zbioru INVTORY wyszukuje w PARTCODE obserwację o tej samej wartości PARTNO. Celem jest uzyskanie odpowiedniego opisu, który jest zawarty tylko w zmiennej DECS w tabeli powiązanej. data combine; set invtory(keep=partno instock price); set partcode(keep=partno desc) key=partno;

Przykład 9: Odczyt obserwacji w trybie bezpośredniego adresowania Poniższe instrukcje wybierają 50 obserwacji ze zbioru DRUGTEST przez użycie opcji POINT=: data sample; do obsnum=1 to 100 by 2; set drugtest point=obsnum; if _error_ then abort; output; end; stop; Przykład 10: Iteracja po wszystkich obserwacjach Poniższe instrukcje używają NOBS= w celu ustalenia znacznika końca pętli. Wartość zmiennej tymczasowej LAST jest sumą liczby obserwacji w SURVEY1 i SURVEY2: do obsnum=1 to last by 100; set survey1 survey2 point=obsnum nobs=last; output; end; stop; Przykład 11: Zapisanie obserwacji dopiero po wczytaniu wszystkich obserwacji wejściowych W tym przykładzie zmienna LAST w opcji END= otrzymuje wartość 1 tylko, gdy została wczytana ostatnia obserwacja: set rental end=last; totdays + days; if last then do; revenue=totdays*65.78; output; end; Łączenie zbiorów danych SAS Doczepianie SET data set 1 data set n; Przeplatanie SET data set 1 data set n; BY variable list; Łączenie jeden do jednego MERGE data set 1 data set 2; (pierwsza obserwacja ze zbioru data set 1 połączona z pierwszą obserwacją ze zbioru data set 2, druga obserwacja ze zbioru data set 1 połączona z drugą obserwacją ze zbioru data set 2, itd) Łączenie przez dopasowanie zmiennej (wcześniej zbiory danych muszą być posortowane po wspólnej zmiennej) MERGE data set 1 data set 2; BY variable list;

Dołączenie sumy do oryginalnych danych IF _N_ = 1 THEN SET summary data set; SET original data set; W powyższym przykładzie original data set jest zbiorem z wieloma obserwacjami (oryginalne dane) a summary data set jest zbiorem z pojedynczą obserwacją (np. zawierającym sumę). SAS odczytuje kolejne obserwacje ze zbioru original data set w kolejnych iteracjach bloku DATA. Natomiast summary data set jest odczytywany tylko w pierwszej iteracji DATA (gdy _N_ = 1). Wartości wczytane ze zbioru summary data set są zachowane dla wszystkich nowo utworzonych obserwacji obserwacji w new data set. Jest to możliwe ponieważ zmienne wczytane przez instrukcję SET są automatycznie zachowywane, co zazwyczaj nie jest zauważalne, gdyż zachowane wartości są nadpisywane w następnej iteracji. Zmienne automatyczne FIRST.variable i LAST.variable Są dostępne tylko w wyjątkowych sytuacjach podczas używania instrukcji BY w bloku DATA. FIRST.variable otrzymuje wartość 1 gdy SAS przetwarza obserwację, w kŧórej po raz pierwszy wystąpiła nowa wartość zmiennej 'variable' i 0 w pozostałych obserwacjach. Zmienna LAST.variable otrzymuje wartość 1 dla ostatniej obserwacji w której zmienna zachowuje poprzednią wartość (ostatniej obserwacji w grupie). Indeksy Nie zawsze są potrzebne czasami wystarczy, że zbiór jest posortowany. Tworzenie przez opcję bloku DATA: DATA data set name(index=(varlist / <UNIQUE><NOMISS> )); data set name nazwa nowego zbioru danych SAS. Varlist nazwa zmiennej która będzie kluczem lub lista zmiennych jeśli to będzie klucz złożony. Np.: data cdsales.bighits(index=(cdnumber / unique)); set olddata.oldhits;... more SAS Statements... Indeks może zostać wykorzystany w opcji KEY instrukcji SET. Opcja ta pozwala wczytać tylko wybrane obserwacje: SET data set name KEY=index name; Przykład: data cdsales; set trans.hits(keep=cdnumber trnartist trnsales); set olddata.oldhits key=cdnumber;...more SAS statements...

Makrozmienne Przechowują jedynie teksty. Ich wartości są ustalane przed kompilacją programu. Wartości są rozwijane także w cudzysłowach ale tylko w, a nie w ' '. Przykład: %LET swieta= 24dec2002'd; %LET zbior=klasa; TITLE Raport dla zbioru &zbior ; Ile_dni = &swieta today(); put Do Swiat zostało ile_dni dni; %PUT zapisuje makrozmienne do logu w czasie kompilacji Np. %PUT ***** &SYSDATE *****; Makroprogramy W makroprogramach możemy używać wyrażeń i funkcji wykonywanych przez makroporcesor, np.: %if, %then, %else, %do, %to, %end, %eval(), %syseval() Przykład: %MACRO CHART(NAME,BARVAR); PROC CHART DATA=&NAME; VBAR &BARVAR; %MEND; %CHART(PAYROLL,EMP) Kompilacja warunkowa %IF może warunkowo przekazywać kod do kompilatora. Przykład: uruchomić PROC PRINT tylko jeśli PRTCH=YES. %MACRO PTCHT(PRTCH,NAME,BARVAR); %IF &PRTCH=YES %THEN PROC PRINT DATA=&NAME; ; PROC CHART DATA=&NAME; VBAR &BARVAR; %MEND; %PTCHT(YES,PAYROLL,EMP) Odczytanie liczby obserwacji w zbiorze data _null_; set demolib.stawki nobs=lstawek; call symput('lstawek_mz', lstawek ); stop; Makrozmienna lstawek_mz zawiera wartość zmiennej lstawek i może zostać użyta jak każda makrozmienna, czyli przez poprzedzenie znakiem &.