Jeg vil gerne vide, om der i OpenOffice Calc er en funktion til kodning af en ny variabel.
Mit problem er, at jeg har en kolonne med værdier fra 1 - 2000. Jeg vil nu gerne have genereret en ny kolonne, hvor der angives bestemte værdier for bestemte intervaller i den foregående kolonne. Fx hvis der er en værdi mellem 1 og 9 skulle den nye kolonne gerne opnå værdien 1.
Jeg anvender ofte en ligende funktion i mit statistikprogram, og jeg vedlægger derfor min syntax derfra for at illustrerer, hvad det er jeg gerne vil opnå.
RECODE
Boligerialt
(Lowest thru 9=1) (10 thru 19=2) (20 thru 29=3) (30 thru 49=4)
(50 thru 99=5) (100 thru 149=6) (150 thru 299=7) (300 thru 499=8)
(500 thru 999=9) (1000 thru Highest=10) (ELSE=SYSMIS) INTO
Boligerialt_kat .
Håber, at nogen kan hjælpe.
Kodning af variabel
Moderator: Lodahl
Re: Kodning af variabel
Du skal lave en brugerdefineret funkion, hvilket er en makro. Her er koden
På http://da.openoffice.org/about-documentation.html kan du finde en vejledningen: ' Start med makroer'.
Hvis tallene 1-2000 står i kolonne A og det første står i A1 så indsætter du fomlen =BoligKategori(a1) feltet B1 og trækkrt formlen ned i resten af felterne i kolonne B
Code: Select all
Function BoligKategori(n As Integer) As Integer
Lowest = 1
Highest = 2000
SYSMIS = -1
if (Lowest <= n) and (n <= 9) then
BoligKategori = 1
elseif n <= 19 then
BoligKategori = 2
elseif n <= 39 then
BoligKategori = 3
elseif n <= 49 then
BoligKategori = 4
elseif n <= 99 then
BoligKategori = 5
elseif n <= 149 then
BoligKategori = 6
elseif n <= 299 then
BoligKategori = 7
elseif n <= 499 then
BoligKategori = 8
elseif n <= 999 then
BoligKategori = 9
elseif n <= Higest then
BoligKategori = 10
else
BoligKategori = SYSMIS
endif
End Function
Hvis tallene 1-2000 står i kolonne A og det første står i A1 så indsætter du fomlen =BoligKategori(a1) feltet B1 og trækkrt formlen ned i resten af felterne i kolonne B
lubuntu 14.04 LibreOffice 4.1.6.2
Re: Kodning af variabel
En anden mulighed er at bruge funktionen Lopslag() eller Vopslag() og lægge opslagstabellen i et andet ark
=LOPSLAG(Opslagsværdi; Matrix; Indeks; Sorteringsrækkefølge)
I dit tilfælde skal du være særlig opmærksom på den sidste parameter og simikolonet før den, idet den bestemmer om dine data er sorterede eller ej. Du laver da to kolonner som vist
Prøv dig frem med grænseværdier of værdi for sorteringsrækkefølge.
Lopslag s metoden er ikke helt så smart som makroen, men er nemmere at rette i og du kan evt lave andre funktioner, der retter værdierne til i opslagstabellen.
med venlig hilsen
=LOPSLAG(Opslagsværdi; Matrix; Indeks; Sorteringsrækkefølge)
I dit tilfælde skal du være særlig opmærksom på den sidste parameter og simikolonet før den, idet den bestemmer om dine data er sorterede eller ej. Du laver da to kolonner som vist
Code: Select all
9 1
19 2
39 3
...
1000 10
Lopslag s metoden er ikke helt så smart som makroen, men er nemmere at rette i og du kan evt lave andre funktioner, der retter værdierne til i opslagstabellen.
med venlig hilsen
Torkil Bladt, Slagelse
Emne: Re: Kodning af variabel
Der må være fejl i den viste brugerdefinerede funktion (BoligKategori),
blandt andet som følge af, at der mangler to linier:
elseif n <=29 then
Boligkategori = 3
Værdier større end eller lig med 30 og mindre end eller lig med 39 giver 3 og værdier større end eller lig med 1000 giver -1.
HK
blandt andet som følge af, at der mangler to linier:
elseif n <=29 then
Boligkategori = 3
Værdier større end eller lig med 30 og mindre end eller lig med 39 giver 3 og værdier større end eller lig med 1000 giver -1.
HK
Re: Emne: Re: Kodning af variabel
Du har ret i, at der er en fejl, der mangler dog ikke to linier, men linienHK wrote:Der må være fejl i den viste brugerdefinerede funktion (BoligKategori),
blandt andet som følge af, at der mangler to linier:
elseif n <=29 then
Boligkategori = 3
Code: Select all
elseif n<= 39
Code: Select all
elseif n<= 29
Og så er der en stavefejl i linienVærdier større end eller lig med 30 og mindre end eller lig med 39 giver 3 og værdier større end eller lig med 1000 giver -1.
Code: Select all
elseif n <= Higest
Code: Select all
elseif n <= Highest
Beklager fejlene!
lubuntu 14.04 LibreOffice 4.1.6.2