Archive for October, 2008

Data mining - ciekawy link

Saturday, October 25th, 2008 | Data Mining | No Comments

Bogaty zbiór linków do materiałów traktujących o data miningu, statystycznej analizie danych etc. (drzewa decyzyjne… )

http://www.autonlab.org/tutorials/

Tags: ,

Jakość danych - FreqAll

Saturday, October 25th, 2008 | Data Mining, SAS | No Comments

Otrzymujesz zbiór danych do analizy, mniej lub bardziej uporządkowany i opisany. Przed rozpoczęciem jakichkolwiek analiz wypada sprawdzić jakość jaką reprezentuje zbiór.

Makro %freqAll znakomicie ułatwi Ci życie:

http://www2.sas.com/proceedings/forum2008/007-2008.pdf

Tags: ,

Zapytanie SQL w pętli z parametrem

Friday, October 24th, 2008 | SAS | 1 Comment

Podczas pracy w środowisku SAS z pewnością spotkałeś się z koniecznością uruchomienia podobnego zapytania SQL na kilku tabelach oraz zestawienia wyników. Okazuje się że uruchomienie zapytania w pętli z parametrem nie jest trudne jeśli wykorzystamy język makr. Przedstawię prosty przykład.
W pierwszym kroku stworzyłem makro którego zadaniem jest wykonanie pętli dla wszystkich parametrów - zmiennych podanych na wejściu oraz wywołanie innego makra. Liczba parametrów jest dowolna.

Sposób wywołania makra:

%petla (tabela1, tabela2, tabela3)

Oraz samo makro:

%macro petla/ parmbuff;
%put Syspbuff contains: &syspbuff;
%let num =1;
%let zmienna = %scan(&syspbuff, &num);
%do %while (&zmienna ne);
%dodaj_wiersz(&zmienna);
%licznik(&zmienna, t1);
%let num = %eval (&num + 1);
%let zmienna = %scan (&syspbuff, &num);
%end;
%mend

Opcja parmbuff przy definicji makra powoduje zapisanie wszystkich parametrów jako jeden string w zmiennej &syspbuff. Dzięki temu możemy wykonać makro dla dowolnej liczby zmiennych. Za rozdzielenie stringa wejsciowego na poszczególne zmienne odpowiada funkcja %scan, która działa podobnie do funkcji explode w języku php.

W drugim kroku tworzę tabelę w której zostaną zapisane wyniki działania zapytań SQL wywoływanych przez makra.

proc sql noprint; create table work.macierz_wynikow
( nazwa_tabeli char(200) primary key,
t1 num,
t2 num,
t3 num,
t4 num
)
;quit;

Krok trzeci to przygotowanie makra któro wykona stosowny kod SQL.

%macro dodaj_wiersz (tabela);
proc sql noprint;
insert into work.macierz_wynikow nazwa_tabeli VALUES ( &tabela)
;quit;
%mend

%macro licznik_rekordow (tabela, pole);
proc sql noprint;
update work.macierz_wynikow set &pole = (
select
count(*)
from &tabela
)
where tabela = “&tabela”
;quit;
%mend

Więcej info w tym temacie:

http://www2.sas.com/proceedings/sugi30/130-30.pdf

Tags:

Funkcja SCAN, dzielenie stringów

Monday, October 20th, 2008 | SAS | No Comments

Szukałem, szukałem… i znalazłem :)
funkcja SCAN w miły sposób zastępuje zabawę z SUBSTR i INDEX.Ścieżka problemu zapisana w następujący sposób:
problem1 -> problem2 -> problem3-> …

proc sql outobs=3;
select
sciezka_problemu,
scan(sciezka_problemu,1,’->’) as a1,
scan(sciezka_problemu,2,’->’) as a2,
scan(sciezka_problemu,3,’->’) as a3,
scan(sciezka_problemu,4,’->’) as a4,
scan(sciezka_problemu,5,’->’) as a5,
scan(sciezka_problemu,6,’->’) as a6,
scan(sciezka_problemu,7,’->’) as a7
from oprshare.zgloszone_problemy
;quit;

A tutaj przewodnik po funkcjach łańcuchowych SAS:

http://support.sas.com/publishing/pubcat/chaps/59343.pdf

Tags:

Na początek garść linków

Wednesday, October 15th, 2008 | SAS | No Comments

SAS

http://www.sascommunity.org/wiki/Sasopedia

http://www.sas.com/

http://www2.sas.com/proceedings/forum2008/TOC.html

http://support.sas.com/cdlsearch?ct=80000

http://www.utstat.utoronto.ca/mikevans/manuals/evanssasman.pdf - Manudal SAS w PDF

http://www.ats.ucla.edu/stat/sas/library/SASTranMan_os.html

Excel

http://www.goldenline.pl/forum/fani-excela

Text mining

http://www.stat.psu.edu/online/program/index.html- Kurs statystyki stosowanej - Polecam!

http://www.bitcetera.com/assets/media/regex_in_a_nutshell.pdf- Wyrażenia regularne, przyda się na każdym biurku :)

Tags: , , ,

Search