marcin.mazurek@wat.edu.pl 2006
SAS 4GL
marcin.mazurek@wat.edu.pl 2006
Wprowadzanie danych
INPUT statement
$ - zmienna tekstowa
@n – przesuwa wskaźnik do n-tej kolumny
+n –przesuwa wskaźnik o n pozycji w wierszu
#n – przesuwa wskaźnik do n-tego wiersza
….
Column input – za zmienną znajduje się zakres pozycji na któych zmienna jest
zapisana
input name $ 1-8 age 11-12;
List input – lista zmiennych, zmienne oddzielane są separatorem
input name $ age;
Formatted input – za zmienną znajduje się nazwa informatu
input name $char8. +2 income comma6. ;
marcin.mazurek@wat.edu.pl 2006
Informat
Informat służy do określenia formatu podczas
przypisywania wartości zmiennej.
Użycie
INPUT statement
funkcje INPUT, INPUTC, INPUTN
INFORMAT statement
ATTRIB statement
Przykład wykorzystania
input @15 style $3. @21 price 5.2;
marcin.mazurek@wat.edu.pl 2006
Wczytywanie dat
marcin.mazurek@wat.edu.pl 2006
Wprowadzanie danych z pliku (external file)
•lrecl= (dla plików dłuższych niż 80 znaków), INFILE parameter
marcin.mazurek@wat.edu.pl 2006
Formaty - zastosowanie
definiowanie formatu na poziomie definicji zbioru danych
definiowanie formatu na poziomie wyświetlania danych
marcin.mazurek@wat.edu.pl 2006
Wybrane formaty
marcin.mazurek@wat.edu.pl 2006
Format / informat
Format
Informat
marcin.mazurek@wat.edu.pl 2006
Zmienne
Definiowanie zmiennych
RETAIN –
pozostawia w PDV wartość zmiennej z poprzedniej iteracji
Funkcje LAG i DIF –
odwołania do wartości zmiennych z poprzednich
iteracji.
marcin.mazurek@wat.edu.pl 2006
Wbudowane funkcje - kategorie
SAS function
x=sqrt(1500);
NewCity=left(upcase(City));
CALL routine
call rxsubstr(rx,string, position);
Mathematical
Probability
Quantile
Random Number
Web Tools
Variable Information
Variable Control
Truncation
Trigonometric
State and ZIP Code
Special
SAS File I/O
Macro
Hyperbolic
Financial
External Routines
External Files
Descriptive Statistics
Date and Time
DBCS
Currency Conversion
Character
Character String Matching
Bitwise Logical Operations
Array
marcin.mazurek@wat.edu.pl 2006
Wbudowane funkcje czasu i daty
Returns a seven-digit Julian date from a SAS date value
JULDATE7 Function
Returns the Julian date from a SAS date value
JULDATE Function
Increments a date, time, or datetime value by a given interval or intervals, and returns
a date, time, or datetime value
INTNX Function
Returns the integer count of the number of interval boundaries between two dates,
two times, or two datetime values
INTCK Function
Returns the hour from a SAS time or datetime value
HOUR Function
Returns a SAS time value from hour, minute, and second values
HMS Function
Returns a SAS datetime value from date, hour, minute, and second
DHMS Function
Returns the day of the month from a SAS date value
DAY Function
Returns the current date and time of day as a SAS datetime value
DATETIME Function
Extracts the date from a SAS datetime value
DATEPART Function
Converts a Julian date to a SAS date value
DATEJUL Function
Returns the current date as a SAS date value
DATE Function
Returns the number of days between two dates
DATDIF Function
Date and Time
marcin.mazurek@wat.edu.pl 2006
Wbudowane funkcje czasu i daty
Returns the variance
VAR Function
Returns a SAS date value from the year and quarter
YYQ Function
Returns the difference in years between two dates
YRDIF Function
Returns the year from a SAS date value
YEAR Function
Returns the day of the week from a SAS date value
WEEKDAY Function
Returns the week number value
WEEK Function
Returns the current date as a SAS date value
TODAY Function
Extracts a time value from a SAS datetime value
TIMEPART Function
Returns the current time of day
TIME Function
Returns the second from a SAS time or datetime value
SECOND Function
Returns the quarter of the year from a SAS date value
QTR Function
Converts the SAS time or datetime value to the time value of the specified locale
using the time-format modifiers
NLTIME Function
Converts the SAS datetime values to the time value of the specified locale using the
datetime format modifiers
NLDATM Function
Converts the SAS date value to the date value of the specified locale using the date-
format modifiers
NLDATE Function
Returns the month from a SAS date value
MONTH Function
Returns the minute from a SAS time or datetime value
MINUTE Function
Returns a SAS date value from month, day, and year values
MDY Function
Date and Time
marcin.mazurek@wat.edu.pl 2006
Funkcje - przykład wykorzystania
TRANSLATE
(source,to-1,from-1<,...to-n,from-n>)
MDY
(month,day,year)
marcin.mazurek@wat.edu.pl 2006
Instrukcje sterujące
DO WHILE
(expression);
...more SAS statements...
END;
DO
i=n
TO
1
BY
-1;
...more SAS statemens...
END;
IF
expression
THEN
statement;
<
ELSE
statement;>
SELECT
<(select-expression)>;
WHEN
-1 (when-expression-1 <..., when-expression-n>) statement;
<...
WHEN
-n (when-expression-1 <..., when-expression-n>) statement;>
<
OTHERWISE
statement;>
END
;
marcin.mazurek@wat.edu.pl 2006
Instrukcje sterujące – przykład
marcin.mazurek@wat.edu.pl 2006
Procedury agregujące
PROC MEANS
PROC SUMMARY
marcin.mazurek@wat.edu.pl 2006
marcin.mazurek@wat.edu.pl 2006
Transpozycja
PROC TRANSPOSE
marcin.mazurek@wat.edu.pl 2006
Łączenie zbiorów danych
marcin.mazurek@wat.edu.pl 2006
Metody łączenia zbiorów danych
concatenating
interleaving
marcin.mazurek@wat.edu.pl 2006
Metody łączenia zbiorów danych
one-to-one reading
one-to-one merging
marcin.mazurek@wat.edu.pl 2006
Metody łączenia zbiorów danych
Update –
zamiana danych
na kopii zbioru
Modify –
modyfikacja na
zbiorze
marcin.mazurek@wat.edu.pl 2006
Przetwarzanie tablic
ARRAY array-name {number-of-elements} <list-of-variables>;
Zamiast podawać explicite listę zmiennych:
_CHARACTER_
_NUMERIC_
_ALL_
marcin.mazurek@wat.edu.pl 2006
Literatura
http://support.sas.com/91doc/docMainpage.jsp
Base SAS
Base SAS Procedure Guide
Procedures
SAS Language Reference Dictionary
Dictionary of languages elements
Function and CALL Routines
Formats
Informats