Du er sikkert vant til å bruke meny-basert programmer eller ikon-basert programmer, der man trykker på en meny eller ikon til å få til ulike funksjoner.

R er annerledes. R er et programmeringspråk, og det betyr at vi skal skrive små programmer som r forstår og skal utføre.

For eksempel, I console skriv følgende:

x = 1:100
print(x)
##   [1]   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17
##  [18]  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34
##  [35]  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51
##  [52]  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68
##  [69]  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83  84  85
##  [86]  86  87  88  89  90  91  92  93  94  95  96  97  98  99 100

Kommandoen forteller r å lage en sekvens av tall fra 1 til 100, deretter sette denne sekvensens in et objekt som heter “x”.

Det er ingenting unikt med “x” her, det er bare et navn jeg har valgt. Vi kunne skrevet

hvasomhelst = seq(1:100)
print(hvasomhelst)
##   [1]   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17
##  [18]  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34
##  [35]  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51
##  [52]  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68
##  [69]  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83  84  85
##  [86]  86  87  88  89  90  91  92  93  94  95  96  97  98  99 100

R forstår og kan utføre mange matematiske operasjoner.

5*5+3
## [1] 28

Hvis vi vil lagre svaret som et objekt, så kan vi gi det et navn:

mitSvar = 5*5+3
mitSvar
## [1] 28

Vi kan også utføre slike operasjoner på en sekvens av tall (også kalt en vektor)

x = 1:100
y= 5 + .5*x
print(y)
##   [1]  5.5  6.0  6.5  7.0  7.5  8.0  8.5  9.0  9.5 10.0 10.5 11.0 11.5 12.0
##  [15] 12.5 13.0 13.5 14.0 14.5 15.0 15.5 16.0 16.5 17.0 17.5 18.0 18.5 19.0
##  [29] 19.5 20.0 20.5 21.0 21.5 22.0 22.5 23.0 23.5 24.0 24.5 25.0 25.5 26.0
##  [43] 26.5 27.0 27.5 28.0 28.5 29.0 29.5 30.0 30.5 31.0 31.5 32.0 32.5 33.0
##  [57] 33.5 34.0 34.5 35.0 35.5 36.0 36.5 37.0 37.5 38.0 38.5 39.0 39.5 40.0
##  [71] 40.5 41.0 41.5 42.0 42.5 43.0 43.5 44.0 44.5 45.0 45.5 46.0 46.5 47.0
##  [85] 47.5 48.0 48.5 49.0 49.5 50.0 50.5 51.0 51.5 52.0 52.5 53.0 53.5 54.0
##  [99] 54.5 55.0

Du ser kanskje at med de tre linjene over, har vi laget en linear funksjon, der 5 er konstantleddet og .5 er stigningsgraden: \(y=5+.5x\)

R har også mange plotting funksjoner, så vi kan visualisere funksjonen som vi definerte.

plot(x,y, type="line")
## Warning in plot.xy(xy, type, ...): plot type 'line' will be truncated to
## first character

Vi kan flytte linjen opp ved å øke konstant-leddet: \(Y_2 = 15+.5x\)

y2=y+10
plot(x,y, type="line")
## Warning in plot.xy(xy, type, ...): plot type 'line' will be truncated to
## first character
lines(x,y2, type="line", col="red")
## Warning in plot.xy(xy.coords(x, y), type = type, ...): plot type 'line'
## will be truncated to first character

Vi har også en rekke kommandoer som kan transformere data. For ekspempel, vi kan lage en kvadratisk funksjon, \(x^2\) ved å skrive:

y3 = x**2
plot(x, y3, type="line")
## Warning in plot.xy(xy, type, ...): plot type 'line' will be truncated to
## first character

En annen transformasjon som vi bruker mye i makroøkonomi er log

log_y3 = log(y3)
plot(x,log_y3, type="line")
## Warning in plot.xy(xy, type, ...): plot type 'line' will be truncated to
## first character

Noen generelle tips:

1.) Skriv alle kommandoene først i en tekst-fil (en .r fil) og deretter send dem til console. Da har du en lagret historie av det du har gjort og det er lett å gjøre om igjen eller endre skripten. 2.) Bruk google. Det er mange tusen kommandoer i r. Det er umulig å lære seg og huske alle. Hvis du lurer på hvordan å gjøre noe, søk på google: “how to create a sequence in r”.

3.) Vær tålmodig. Programmering er vanskelig og kan være frustrerende. Det kan føles veldig forvirrende og fremmed i begynnelsen. Men det blir bedre.

Neste lab

Neste lab skal vi begynne å jobbe med ekte data. Vi skal lære hvordan å importere data fra et par ulike kilder og lære noen enkle måter å håndtere og formattere data på.