Podstawowe i zaawansowane programowanie oraz statystyka w SAS

Nr przedmiotu: 223110-1234

Prowadzący: dr Karol Przanowski dr Sebastian Zając
Zakład Analizy Historii Zdarzeń i Analiz Wielopoziomowych

Gdzie jesteśmy ?

Co już wiemy ?

  • Biblioteki - tworzenie i usuwanie, wypisanie do loga info
  • Data Stepy, SET
  • Wektor PDV
  • Proc Step z SQL
  • Obsługa formatu daty i czasu
  • Funkcje formatu daty i czasu

Funkcje liczbowe

zaokraglenia i wartosci numeryczne

data zaokraglenia;
liczba = 134.12;
f = floor(liczba); /* liczba całkowita mniejsza niż podany arg */
c = ceil(liczba);/* liczba całkowita wieksza niż podany arg */
i = int(liczba);/* część całkowita z arg */
fz = fuzz(liczba);/* liczba najbliższa liczbie całkowitej jeśli argument różni się od tej liczby o mniej niż 1E-12 */
r = round(liczba, 10);/* zwraca arg1 zaokrąglony do najbliższej wielokrotności arg2 */
abs = ABS(liczba);
exp = EXP(liczba);
log = LOG(liczba);
log10 = LOG10(liczba);
mod = MOD(liczba, 5);
sqrt = SQRT(liczba);
sign = SIGN(liczba);
run;

Liczby losowe

data a;
a = rannor(0);
b = ranbin(0);
c = rancau(0);
d = ranexp(0);
e = rangam(0);
f = ranpoi(0);
g = ranuni(0);
run;

Ze zbioru sashelp.cars wylosować obserwacje z prawdopodobieństwem 25% i zapisac do zbioru CARS w bibliotece work.

matematyczne

data math;
l1 = 35;
l2 = 24;
max = max(of l1 - l2);
min = min(l1, l2);
mean = mean(l1,l2);
var = var(of l1-l2);
sum = sum(l1,l2);
n = n(l1,l2);
nmiss= nmiss(l1,l2);
range = range(l1,l2);
std = std(l1,l2);
run;

lag n

data a;
set sashelp.class(keep=weight);
x = lag(weight);
y = lag2(weight);
run;
proc print;
title 'funkcja lag()';
run;

dif n

data a;
set sashelp.class(keep=weight);
x = dif(weight);
y = dif2(weight);
run;
proc print; title 'funkcja DIF()'; run;

napisy

data c;
a = "Ala ma kotka";
x = "Ala,ma,kota";
b = Index(a, "kotka");/* pozycja jednego stringa w drugim */
Imie = scan(a, 1); /* zwraca poszczegolne wyrazy */
Zwierzak = scan(a, 3);
test = scan(x,2,',');
c = substr(a,5);
d = substr(a,5,2);
low = lowcase(a);
up = upcase(a);
prop = propcase(a);
change = tranwrd(a, "tka","ty");
z = "S A S ";
zz = compress(z);
fname = "Sebastian ";
lname = "Zajac ";
fname_1 = trim(fname); /* prawa strona */
fname_2 = strip(fname);/* left right */
person = fname||' '||lname;
person2 = compbl(person);
person3 = cat(fname,lname);
rev = reverse(person2);
q = quote(rev);
run;
proc print;
title 'Napisy i ich przetwarzanie';
run;

Na podstawie zbioru SASHELP.COMPANY stwórz zbiór pracownicy zawierający tylko imię, nazwisko i inicjały.