18.07.2013 Views

Noter om R

Noter om R

Noter om R

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

18 Fra scripts til funktioner<br />

Når den samme type beregning skal udføres mange gange, eller man for eksempel skal lave mange<br />

beslægtede grafer, kan man gøre det ved i R Editor at kopiere det “script” (de linjer R-kode) s<strong>om</strong> udfører<br />

én udgave af beregningen og så lave de nødvendige ændringer for at det skal udføre en anden (og tredje,<br />

fjerde, . . . ) udgave af beregningen. Dermed får man et stort script sammensat af mange små næsten<br />

identiske scripts. Man kan imidlertid gøre det lettere og mere overskueligt for sig selv ved i stedet at<br />

definere en funktion med det grundlæggende script der udfører én beregning og så kalde den funktion<br />

hver gang, man har brug for beregningen. Dermed bliver hvad der ellers ville være et stort uoverskueligt<br />

script reduceret til én funktionsdefinition og et antal linjer med kald af funktionen.<br />

Ofte vil man arbejde på den måde at man i første <strong>om</strong>gang løser én udgave af problemet med helt<br />

konkrete tal og derefter med udgangspunkt i det R-script, man har skrevet, skriver en funktion der løser<br />

problemet “smartere”. De konkrete tal, man brugte i første <strong>om</strong>gang, ændrer man til parametre således at<br />

man kan variere dem når man kalder funktionen. At indkapsle beregningen i en funktion gør således at<br />

man kan parametrisere sin kode så den kan bruges til at løse mange forskellige udgaver af problemet.<br />

S<strong>om</strong> eksempel på en beregning man med fordel kan indkapsle i en funktion vil vi bruge fremskrivning<br />

med lineær afbildning s<strong>om</strong> blev udviklet for en model for kaninpopulation i afsnit 16.9. Her endte vi med<br />

at skulle igennem følgende trin for at definere modellen, fremskrive 20 år og opsamle resultaterne i en<br />

matrix V hvor hver søjle indeholder den fremskrevne population for et givet år:<br />

M

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!