/* 2016.02.15 Harmadik SAS gyakorlat SZTE, Statisztika gyakorlati alkalmazasai Altalanossagban a SAS Help alkalmazasa javasolt, jol hasznalhato leirasokat tartalmaz. A Help mellett segit a SasStudio-ban a Snippets: pl. Simulate Linear Regression Data-ra duplan kattintva elohozza a sablon SAS kodot */ /* - "kiskek" nevu adatallomany a WORK konyvtarban jon letre, ez egy ideiglenes konyvtar, aminek tartalma a SAS bezarasaval elvesz - DROP: valtozok kihagyasa/torlese */ data kiskek (drop=ora perc mp); set cs2016.kekebb; run; /* MEANS eljaras tovabbi parameterezese BY kulcsszoval adjuk meg a csoportosito valtozot: kategoriankent kerunk leiro statisztikat n: esetszam mean: atlag std: szoras p...: percentilisek median: p50: 50%-os percentilis */ proc means data=cs2016.kekebb n mean std p10 p25 median p75 p90; by kateg; run; /* Mivel nem rendeztuk a csoportosito valtozo szerint az allomanyt, ezert hibat dob: ERROR: Data set LA16.KEKEBB is not sorted in ascending sequence. The current BY group has kateg = YS1 and the next BY group has kateg = 70. --> elobb rendezzuk az adatokat "kateg" ertekei szerint Most a meglevo adatallomanyt irjuk folul, ha uj allomanyba szeretnenk rendezni, kell egy out opcio. MINDIG OVATOSAN KEZELJUK UGYANAZON ALLOMANY FELULIRASAT! */ proc sort data=cs2016.kekebb /* out=la16.kekebb_sort */ ; by kateg; run; proc means data=cs2016.kekebb n mean std p10 p25 median p75 p90; by kateg; run; /* Gyakorisagi tablak: a "kateg" nomenklatura valtozo milyen ertekeket vesz fol, es melyikbol mennyi van */ proc freq data=cs2016.kekebb; table kateg; run; /* Kezi adatbevitel: INPUT: valtozok felsorolasa es formatumok megadasa: pl. $3. 3 hosszu karakteres valtozo nomenklatura: kod jellegu valtozo, diszkret valoszinusegi valtozo mutato: ertek jellegu valtozo, folytonos valoszinusegi valtozo CARDS kulcsszo utan gepelhetjuk be az adatokat "." hianyzo erteket jelol Az adatbevitel veget ; jeloli */ data cs2016.x; input nom1 $2. nom2 $5. mutato1 3. mutato2 5. ; cards; aa lll 123 3456 aawerue 2 23 aa KKK 345 6789 bb lll . 1213 bb lll 345 245231 bb KKK 344 3454 bb KKK 123 473 ; run; /* Gyakorisagi eloszlas a ket nomenklaturara */ proc freq data=cs2016.x; table nom1 nom2; run; /* Bovebb leiro statisztika a mutato1 mutatora a nom1 nomenklatura csoportjaiban */ proc means data=cs2016.x n mean std mode nmiss min p25 median p75 max maxdec=2 ; var mutato1; by nom1; run; /* Fuggvenyek hasznalata Erdemes hozza nezni a SAS Base tananyagot: http://www.inf.u-szeged.hu/~csicsman/oktatas/adatbanyaszat/kiegeszites/sas_book.pdf 117.o.: A SAS RENDSZER FUGGVENYEINEK LISTAJA */ data cs2016.x; set cs2016.x; ossz1 = mutato1 + mutato2; /* ahol barmely tag hianyzo ertek, ott az osszeg is hianyzo ertek lesz */ ossz2 = sum(mutato1,mutato2); /* hianyzo ertektol fuggetlenul osszegez */ s = substr(nom1,2,2); /* nom1 nomenklatura valtozoban a 2. karaktertol kiolvasott 1 db karakter */ /* mivel nom1 2 hosszu karakterlanckent van tarolva, a masodik karakteretol mar csak 1 karaktert tud kiolvasni */ i_i = index(nom2,"KK"); /* a "KK" karakterlanc, hanyadik karaktertol szerepel a nom2-ben, ha nincs benne, akkor 0 */ run;