Uusi DAT-funktio havaintoarvojen poimintaan

[viesti Survo-keskustelupalstalla (2001-2013)]

Kirjoittaja: Seppo Mustonen
Sähköposti:    -
Päiväys: 7.12.2002 16:35

Survossa havaintoaineistoista voi poimia tietoa toimituskenttään
esim. editoriaalisen tai kosketuslaskennan käyttöön, raportointiin
tai muuten vain katseltavaksi monin eri tavoin (esim. FILE LOAD
-komennolla).
Olen havainnut, että joskus on tarpeen ottaa esiin jokin yksittäinen
tieto.

Esim. jos haluaa urkkia demotiedostosta KUNNAT, mikä on aikoinaan ollut
Helsingin asukasluku, se onnistuu tietenkin helposti käyttämällä esim.
komentoa
FILE SHOW KUNNAT
ja etsimällä hakunapilla Helsinki
tai suoraan vaikkapa komennolla
FILE LOAD -KUNNAT,CUR+1 / VARS=Väestö CASES=Kunta:Helsinki
 483057

Mielessäni on ollut jonkin aikaa luoda vielä helpompi tapa samaan
tyyliin kuin matriisien alkioita saattaa käyttää editoriaalisessa
laskennassa (ARIT?:V,M).

Alustavasti olen toteuttanut asian seuraavassa muodossa.
Helsingin asukasluku KUNNAT-tiedostosta saadaan aktivoimalla
DAT_KUNNAT(Helsinki,Väestö)=_
jolloin vastaukseksi tulee luonnollisesti
DAT_KUNNAT(Helsinki,Väestö)=483057 .

Siis vastaavasti kuin matriisin alkioita pääsee poimimaan
"MAT_-funktiolla", havaintoaineistojen muuttujien
numeerisia arvoja saa esiin "DAT_-funktiolla" olipa datan
esitystapa mikä tahansa Survon sallimista (siis .SVO-datatiedosto,
havaintolista tai havaintotaulukko toimituskentässä ja jopa
matriisitiedosto).

DAT on raskaampi kuin MAT enkä ole halunnut rasittaa sillä Survon
editoria. Siksi DAT-funktiota varten on aivan oma erillinen
ohjelmamoduli _DAT_.EXE (mutta siitä käyttäjän ei tarvitse tietää
mitään).

DAT-funktion varsinainen tehokäyttöalue lienee sukrojen yhteydessä,
mutta valtavien tietomäärien systemaattiseen tai ehdolliseen poimintaan
sitä ei kannata käyttää, koska entiset konstit ovat silloin parempia.

Oletusarvoisesti DAT lähtee siitä, että aineistossa havainnon nimi
(kuten KUNNAT-tiedostossa muuttuja Kunta) on ensimmäisenä
muuttujana. Se sallii kuitenkin myös mm. havainnon järjestys-
numeron havainnon nimen paikalla.
Samoin muuttujan nimen paikalla voi olla muuttujan järjestys-
numero aineistossa.

Alla muutamia näytteitä uuden DAT-funktion käytöstä.
Siirry tarvittaessa perusdatahakemistoon esim. komennolla
CD <Survo>\U\D
koska sieltä löytyvät tiedostot KUNNAT.SVO, DECA.SVO ja WORLD99.SVO.

DAT_KUNNAT(Helsinki,Väestö)=483057
DAT_KUNNAT(31,Väestö)=7954        (Havainto nro.31 on Halikko)
DAT_KUNNAT(Helsinki,3)=483057     (Väestö on muuttuja nro.3)
DAT_KUNNAT(Helsinki,Ala)=176.87
DAT_KUNNAT(Helsinki,Palvelu)=7
A1=DAT_KUNNAT(Helsinki,Ala)      V1=DAT_KUNNAT(Helsinki,Väestö)
A2=DAT_KUNNAT(Inari,Ala)         V2=DAT_KUNNAT(Inari,Väestö)
A2/A1=86.227624809182            V2/V1=0.01415774949954

Tällaisista virheistä tulee myös sanalliset ilmoitukset:
DAT_KUNNAT(Helsinki,XXX)=error     (tuntematon muuttuja)
DAT_KUNNAT(Töölö,Väestö)=error     (tuntematon havainto)
DAT_KUKKUA(Helsinki,Väestö)=error  (tuntematon aineisto)

DAT_DECA(Hedmark,Javelin)=975

DATA KOE:(X,Y) 1,2 3,4 5,8 7,10

DAT_KOE(4,1)=7
DAT_KOE(4,2)=10

MAT SAVE A / Talleta ensin matriisi!
MATRIX A
///            S1       S2       S3
R1             11       12       13
R2             21       22       23
R3             31       32       33

DAT_A.MAT(R2,S2)=22
mutta paremmin
MAT_A(R2,S2)=22

DATA MAAT
  Maa        Kahvi   Tee   Olut  Viini   Viina
  Suomi       12.5  0.15   54.7    7.6     2.7
  Ruotsi      12.9  0.30   58.3    7.9     2.9
  Norja        9.4  0.19   43.5    3.1     1.8
  Tanska      11.8  0.41  113.9   10.4     1.7
  Englanti     1.8  3.49  113.7    5.1     1.4
  Irlanti      0.2  3.73  124.5    3.8     1.9
  Hollanti     9.2  0.58   75.5    9.7     2.7
  Sveitsi      9.1  0.25   73.5   44.9     2.1
  Ranska       5.2  0.10   44.5  104.3     2.5
  Italia       3.6  0.06   13.6  106.6     2.0
  Espanja      2.5  0.03   43.6   73.2     2.7
  Portugali    2.2  0.03   27.5   89.3     0.9

DAT_MAAT(Sveitsi,Viini)=44.9
DAT_MAAT(Suomi,Viina)/DAT_MAAT(Portugali,Viina)=3
.......................................................................

F=DAT_WORLD99(Finland,Pop99)    Pop99 is population (mil) in 1999
S=DAT_WORLD99(Sweden,Pop99)
N=DAT_WORLD99(Norway,Pop99)
D=DAT_WORLD99(Denmark,Pop99)

Nordic=10^6*(F+S+N+D)

Nordic=23781000 (Population of Nordic countries in 1999)
.......................................................................

Jos nimimuuttuja ei ole aineistossa ensimmäisenä, se voidaan osoittaa
merkinnällä Nimimuuttuja>Nimi kuten esim.
DAT_KUNNAT(Kunta>Helsinki,Väestö)=483057
(vaikka tässä tuo yleisempi merkintä ei ole tarpeellinen).
Kun "nimimuuttuja" voi saada samoja arvoja, kuten Lääni KUNNAT-
tiedostossa, tulos poimitaan järjestyksessä ensimmäistä tapauksesta eli
esim.
DAT_KUNNAT(Lääni>UUS,Väestö)=2039          (Artjärven väkiluku)
.......................................................................

Uskallan toivoa, että aktiiviset survoilijat löytävät ovelia
sovelluksia tälle uudelle ominaisuudelle.
Olisi mukava kuulla mielipiteitä ehdotuksesta ennenkuin
tehdään lopullisempia päätöksiä DAT-funktion kohtalosta.
Se tulee käyttöön todennäköisesti SURVO MM:n versiossa 1.30.

- Seppo

Vastaukset:

Survo-keskustelupalstan (2001-2013) viestit arkistoitiin aika ajoin sukrolla, joka automaattisesti rakensi viesteistä (yli 1600 kpl) HTML-muotoisen sivukokonaisuuden. Vuoden 2013 alusta Survo-keskustelua on jatkettu entistäkin aktiivisemmin osoitteessa forum.survo.fi. Tervetuloa mukaan!

Etusivu  |  Keskustelu
Copyright © Survo Systems 2001-2013. All rights reserved.
Updated 2013-06-15.