Re: Osa-aineisto sieltä täältä - IND?

[vastaus aiempaan viestiin]

Kirjoittaja: Seppo Mustonen
Sähköposti:    -
Päiväys: 21.5.2004 16:02

Esittämistäsi keinoista SELECT-täsmennyksen käyttö lienee selvin.
SELECT:illä ei ole periaatteessa kapasiteettirajoituksia, koska
sen tarvitsemat tilat varataan muistista dynaamisesti.
Itse täsmennyksen kirjoittaminen tietenkin hankaloituu, jos
vaihtoehtoja on kymmeniä.

> CLASSIFY-toiminnolla ensin uuden muuttujan on siihen turhan raskas,
> kun ko. uusi muuttuja on tod.näk. tarpeeltaan kertakäyttöinen.
En halveksisi tätäkään keinoa, koska "kertakäyttömuuttujat" voi
aina helposti siivota pois FILE REDUCE:lla.

Mielestäni yleisin ja "suurissa sovelluksissa" paras keino on käyttää
FILE SELECT -operaatiota.
Koska se saattaa olla useille survoilijoille tuntematon, kuvaan
käyttöä siinä tilanteessa, jossa kopioidaan ne havainnot,
joissa IKA saa jonkin arvoista 1,3,5,9,10.

*Tehdään aluksi vaiheittain 100 havainnon aineisto KOE muuttujista
*IKA ja PAINO:
*
*Helpoin tapa (mielestäni) luoda tiedostolle kehikko on seuraava.
*Kuvataan ensin vain yksi tyypillinen havainto:
*DATA K
*IKA PAINO
*1   11.1
*
*FILE COPY K TO NEW KOE / Kopidaan tuo 1 havainnon aineisto tiedostoksi.
*FILE INIT KOE 99       / Tehdään tilaa yhteensä 100 havainnolle.
*
*Lasketaan sitten muuttujat "sopivista" jakaumista:
*VAR IKA,PAINO TO KOE
*IKA=int(10*rand(2004))+1
*PAINO=20*sqrt(IKA)+N.G(0,5,rand(2004))
*......................................................................
*Tiedoston alku näyttää seuraavalta:
*FILE LOAD KOE,CUR+1 / IND=ORDER,1,10
*DATA KOE*,A,B,C
C IKA PAINO
A   1  20.5
*   6  50.6
*   4  38.9
*   1  19.4
*   2  29.2
*   7  54.7
*   6  50.9
*   6  47.1
*   7  52.4
B   3  38.0
*
*Jotta päästään valikoimaan FILE SELECT:illä, luetellaan halutut IKA-
*arvot omana datanaan (joka voi olla kuinka laaja tahansa):
*DATA SEL
*IKA
*1
*3
*5
*9
*10
*
*FILE COPY SEL TO NEW SEL2 / Kopioidaan arvoluettelo datatiedostoksi.
*......................................................................
*Nyt valinta tapahtuu yksinkertaisesti näin (kts. FSEL?):
*FILE SELECT KOE2 FROM KOE BY SEL2  / KEYS=IKA
*
*Tulos on alkupäästään seuraavanlainen:
*FILE LOAD KOE2,CUR+1 / IND=ORDER,1,10
*DATA KOE2*,D,E,F
F IKA PAINO
D   1  20.5
*   1  19.4
*   3  38.0
*  10  63.5
*  10  58.2
*   5  43.7
*   1  21.5
*   3  37.0
*   9  59.4
E   9  57.6
*
*On siis kopioitu ne havainnot, joissa muuttujalla IKA tiedostossa KOE
*on jokin valintatiedostossa SEL2 oleva IKA-arvo (KEYS=IKA).
*FILE SELECT on hyödyksi myös mutkikkaammissakin valikoinneissa.

-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.