HASH-Objekti ”Taulukkotietorakenne” Sugif 12.3.2014 by Heikki Herva.

Slides:



Advertisements
Samankaltaiset esitykset
Excel ja makrot Excel koostuu kahdesta eri osasta Alt+F11 VBA
Advertisements

 Vuoden 2014 ensimmäinen Tech Club tilaisuus pidettiin SAS Instituten tiloissa Otaniemessä. Päivän teemana oli Proc FCMP ja HASH –objektit. Lisäksi osaanottajia.
VBA –ohjelmoinnin perusteet
Henrik Lähdeniemi Arto Valtanen
R ja QRMlib-kirjasto Anssi Käki Työn saa tallentaa ja julkistaa Aalto-yliopiston avoimilla verkkosivuilla. Muilta osin kaikki oikeudet pidätetään.
1 Sektorin nimi. 2 Reading times of magazines NRS Finland 2012.
vuorovaikutteiset www-sivut 1.Asiakas-palvelinmalli kuvana Request Response request.asp response.asp.
SAS ohjelman suoritusajan mittaaminen ja koodin tehokkuuden parantaminen SAS Technical Clubin kokoontuminen Virpi Virtanen Tieto-Tapiola Oy.
Aggregaattifunktiot (1)
Yhteystila-algoritmi
22. Taulukot.
Suomalaisia perinneleikkejä
Sugif by Heikki Herva Proc FCMP  Itse kirjoitetut funktiot Hash objekti  ”Taulukkotietorakenne”
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Tietorakenneluokkia 2: HashMap, TreeMap.
1 Sektorin nimi. 2 Reading times of magazines NRS Finland 2011.
Kuvien lähde:. Kuinka pitkä on pitkä? Subprime kriisi alkoi Yhdysvalloista elokuussa Se muuttui finanssikriisiksi lokakuussa Kreikkakriisi.
VB:n tietokantakäsittely
1 Tulostaminen ja tiedostot. 2 Tulostaminen paperille n Tulostus voidaan tehdä esimerkiksi: –Crystal Reports -raporttigeneraattorilla –Printer-objektin.
Technical Club – BASE SAS Classics. Marko Kivelä, Arvotieto Oy Proc transpose, Proc summary, Proc formats ovat Markon suosikkiproceduureja.
Markkinointiviestinnän panostusten kehittyminen vuonna 2006 vuoteen 2005 verrattuna SALDO % 43% 33% Kuva 1 Mainosbarometri.
Tekstitiedostosta lukeminen tMyn1 Tekstitiedostosta lukeminen Tiedosto voidaan avata pelkästään lukemista varten tai kirjoittamista ja lukemista varten.
Map-luokka Mikä Map on? Mapin esittely ja luonti Map-luokan metodeja Mappiin lisääminen Mapin läpikäynti Mapista poistaminen 1.
Oulu ALO-luokka 12kyl, 4pys Tuomari: Tytti Lintenhofer Kyl:
Tietokannat –kurssi SQL peruskyselyt
22. Taulukot.
Tietokannat -kurssi KSAO, Datanomit, käytön tuki kevät 2015 Lauri Tapola.
Suomen Lääkäriliitto | Finnish Medical AssociationLääkärit Suomessa | Physicians in Finland Tilastotietoja lääkäreistä ja terveydenhuollosta 2014 Statistics.
DO NOT PRINT THIS DOCUMENT SQL -valintaehto CREATE TABLE opettaja ( opetunnus varchar(12) NOT NULL, nimi varchar(40) NOT NULL, puhelin varchar(12), tyohuone.
DO NOT PRINT THIS DOCUMENT SQL -valintaehto CREATE TABLE opettaja ( opetunnus varchar(12) NOT NULL, nimi varchar(40) NOT NULL, puhelin varchar(12), tyohuone.
Olioiden taulukointi Perustaulukon käyttö Luokan ilmentymät voidaan tallettaa taulukkoon samoin kuin muuttujat Esimerkki talletetaan taulukkoon opintojaksojen.
Java - Tietokanta. JDBC=Java database connectivity  ODBC:n kaltainen ohjelmointiliittymä SQL- tietokantoihin  Koostuu Java-kehitysympäristön (esim.
Karteesinen tulo Huomaa attribuuttien nimien tarkentaminen taulujen nimillä.
Irmeli Sinkkonen TkL, tutkija
ENA TODAY’S SPECIAL. otsikko oltava täysin oikein; numero pitää olla; ei alleviivausta! oma nimi oikeaan yläkulmaan; marginaaliin ei mitään.
Ict02d Johdanto Dynaamiset tietorakenteet –Rakenteiden tilavaraus laajenee/pienenee ajonaikaisesti. –Rakenteita on useita tyyppejä Linkitetty lista Pino.
Ohjelmointi 1. toinen luento1 Taulukot n Kiinteät taulukot: alkioiden määrä tiedetään Dim intCount(12) As Integer 0 indeksit saavat arvoja 0-12 (Option.
Tietokannat -kurssi KSAO, Datanomit, käytön tuki kevät 2015 Lauri Tapola.
Tietokannat -kurssi KSAO, Datanomit, käytön tuki kevät 2015 Lauri Tapola.
1..toistolauseet While Wend For Each In [Exit For] Next.
FOR i := 0...N-1 DO summa := summa + A[i] tulo := tulo * A[i] ENDFOR.
Hakemistot Nopeuttavat hakuoperaatioita Hidastavat päivitysoperaatioita Pääavaimelle luodaan aina indeksi; päävain toimii usein hakukriteerinä Luodaan.
1 MODSIM III. 2 MODSIM III Valmistaja: CACI Products Company Ominaisuuksia: –yleiskäyttöinen –modulaarinen –lohkorakenteinen.
Esityksen nimi Esityksen pitäjä / organisaatio tilaisuus, päivämäärä TFEIP 12 May 2015 Use of Point Source Data in the Emission Inventory Example Finland.
Finský intensivní Titta Hänninen.  1. What is the capital of Finland? ◦ Mikä on Suomen pääkaupunki? ◦ Helsinki on Suomen pääkaupunki.  2.
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembler.
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli.
Tervetuloa suomen kielen kurssille!
Kysymykset QUESTIONS P. 188.
Procedural Language Extensions to SQL
2. Taulukot.
INFINITIIVI / ING-MUOTO
Verbin perusmuoto 1 ’TO SING’ OR ’SING’.
Mikäli ääniyhteys koneen kautta ei toimi
MyData – asiakas keskiöön
Muuttujamuunnoksista
Aakkosnumeerinen tieto
2. Taulukot.
Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö
Probability models and decision analysis
DIC and BMA in BUGS Biotieteellinen tiedekunta / Henkilön nimi / Esityksen nimi
Probability models and decision analysis
Suodattaminen Valitse suodatustapa Anna hakukriteeri(t) Katso tulos
Hankalia (?) tilanteita Tammikuu 2014 Keke Tulomäki
My final comments to you can be summarized as the three Ps:
Otsikon asettelu Alaotsikko.
Implementing a System for Intentional Concurrency in Jikes RVM
Information for teachers
Kari Systä Tampere University of Technology / Software Systems
NoodleTools: How to Cite
Beekeeping at ctjs By Qarnayn
Esityksen transkriptio:

HASH-Objekti ”Taulukkotietorakenne” Sugif by Heikki Herva

/**************************************\ * Yhdistely perinteisellä Mergellä. * \**************************************/ * Ensiksi lajitellaan ensimmäinen taulu; proc sort data=asiakas_perustiedot out=asiakas_perustiedot_s; by pankki astun; run; NOTE: There were n observations read from the data set ASIAKAS_PERUSTIEDOT. NOTE: The data set ASIAKAS_PERUSTIEDOT_S has n observations and n variables. NOTE: PROCEDURE SORT used (Total process time): real time 2:52.24 cpu time 1:43.17 * Toiseksi lajitellaan toinen taulu; proc sort data=asiakaskokonaisuudet out=asiakaskokonaisuudet_s; by pankki astun; run; NOTE: There were n observations read from the data set ASIAKASKOKONAISUUDET. WHERE tyyppi_kd='R'; NOTE: The data set ASIAKASKOKONAISUUDET _S has n observations and n variables. NOTE: PROCEDURE SORT used (Total process time): real time 1.33 seconds cpu time 0.57 seconds

* Sitten Merge; data asiakas_ja_osallisuus_mergella; merge asiakas_perustiedot_s (in=ap) asiakaskokonaisuudet_s (in=ao); by pankki astun; if ap; run; NOTE: There were n observations read from the data set ASIAKAS_PERUSTIEDOT_S. NOTE: There were n observations read from the data set ASIAKASKOKONAISUUDET_S. NOTE: The data set WORK.ASIAKAS_JA_OSALLISUUS_MERGELLA has n observations and n variables. NOTE: DATA statement used (Total process time): real time 2:23.97 cpu time 1:11.52

/**************************************\ * Yhdistely Hash-objektin avulla. * \**************************************/ * Lajittelua ei tarvita; data asiakas_ja_osallisuus_hashilla; if _n_ eq 1 then do; declare hash demohash(dataset:'asiakaskokonaisuudet'); demohash.defineKey('pankki','astun'); demohash.defineDone(); end; set asiakas_perustiedot; if demohash.find() in (0, ) then output; run; NOTE: There were n observations read from the data set ASIAKASKOKONAISUUDET_S. NOTE: There were n observations read from the data set ASIAKAS_PERUSTIEDOT. NOTE: The data set WORK.ASIAKAS_JA_OSALLISUUS_HASHILLA has n observations and n variables. NOTE: DATA statement used (Total process time): real time 2:41.20 cpu time 1:09.68

data demolibr.hyvaksytyt_sopimukset demolibr.alle_12_konttorissa demolibr.ei_maksuja_konttorissa; merge demolibr.liikevaihto_12kk (in=lv) demolibr.sopimus_tapahtumat (in=st) ; by pankki astun; attrib sarake_55_rm format = commax17.2 length = 8; attrib sarake_60_rm format = commax17.2 length = 8; if (_n_ eq 1) then do; * Luodaan hash-taulu konttorissa tehdyistä maksuista.; declare hash hmaksut(dataset: ”nimi_muutettu_sum"); hmaksut.defineKey("pankki","astun"); hmaksut.defineData("pankki","astun","kappalemaara","rahamaara"); hmaksut.defineDone();

* Luodaan hash-taulu omista varoista.; declare hash omatvara(ordered:"a"); omatvara.defineKey("oytun","oyvol_luokitt1"); omatvara.defineData("oytun","oyvol_luokitt1", "oyvol_tietotyyppi","oyvol_rahamaara"); omatvara.defineDone(); do until (eof_toy_vol); set demolibr.toy_volyymit (keep=oytun oyvol_luokitt1 oyvol_tietotyyppi oyvol_rahamaara) end=eof_toy_vol; if oyvol_tietotyyppi = 'CA' and oyvol_luokitt1 in('40','01') and substr(oytun,7,4) eq '9000' then do; omatvara.add(); end;

pankki = substr(pankki,1,6); astun = astun; rc = hmaksut.find(); select (rc); when (0) do; /* Asiakkaalle löytyi maksutoimeksiantoja. */ if kappalemaara ge 12 then do; /* Haetaan hash-taulusta pankkien omat varat. */ oytun = cats(pankki, '9000'); oyvol_luokitt1 = '40'; rc = omatvara.find(); select (rc); when (0) do; /* Haku onnistui. */ sarake_55_rm = oyvol_rahamaara; end; when (160038) do; /* Pankille ei löytynyt omia varoja. Luokittelu 40. */ sarake_55_rm =.; end; otherwise do; put 'VIRHE: Pankin omien varojen haku hash-taulusta epäonnistui. Luokittelukoodi 40. ' pankki= rc= ’.’; put 'VIRHE: Ajo kaadetaan.'; abort; end;

oyvol_luokitt1 = '01'; rc = omatvara.find(); select (rc); when (0) do; /* Haku onnistui. */ sarake_60_rm = oyvol_rahamaara; end; when (160038) do; /* Pankille ei löytynyt omia varoja. Luokittelu 01. */ sarake_60_rm =.; end; otherwise do; put 'VIRHE: Pankin omien varojen haku hash-taulusta epäonnistui. Luokittelukoodi 01. ' pankki= rc=; put 'VIRHE: Ajo kaadetaan.'; abort; end; else do; output demolibr.alle_12_konttorissa; end;

when (160038) do; /* Asiakkaalle ei löytynyt maksutoimeksiantoja. */ output demolibr.ei_maksuja_konttorissa; end; otherwise do; /* Ilmeisesti joku todellinen ongelma. Tehdään virhe. */ put 'VIRHE: Haku maksuliikkeen hash-taulusta epäonnistui. ' rc= '.'; abort; end; run;

Muutamia muita hash-metodeja Replace() - Päivittää avaimen perusteella rivin hash-objektissa. Check() - Onko avaimella riviä hash-objektissa. Ei muuta datan arvoa. Remove() - Poistaa rivin hash-objektista. Output() - Kirjoittaa hash-objektin SAS-tauluksi. Ref() - Tekee haun, Find(), ja jos avaimella ei löydy riviä hash-objektista, lisää rivin hash-objektiin. First(), Last(), Next(), Prev() - Luetaan hash-objektia peräkkäisjärjestyksessä läpi, eteenpäin tai taaksepäin. Hash-metodien referenssikortin saa googlettamalla sas9 hash object tip sheet.