Funksjoner er Rs superkraft

Funksjoner gjør én oppgave anvendbar på hele sett av data.

x <- 100
y <- 145

x + (y * 2)
## [1] 390
regn.ut <- function(x,y) {
  x + (y * 2) 
}

regn.ut(100,145)
## [1] 390
regn.ut(1020,1454)
## [1] 3928
sjekk.sum<- function(navn,x,y) {
  setning <- paste(navn, "skal ha den nette sum av", regn.ut(x,y), "kroner.")
  return(setning)
}

sjekk.sum("Christian", 34, 56)
## [1] "Christian skal ha den nette sum av 146 kroner."
sjekk.sum("Håvard", 134, 567)
## [1] "Håvard skal ha den nette sum av 1268 kroner."
sjekk.sum("Daniel", 287, 2828)
## [1] "Daniel skal ha den nette sum av 5943 kroner."
sjekk.sum("Ruth Mari", 538, 90)
## [1] "Ruth Mari skal ha den nette sum av 718 kroner."
sample(1:10)
##  [1]  8  3  2  6  1  9 10  4  7  5
sample(1:10)[1]
## [1] 3
folk <- c("Håvard Lied", "Marita", "Magnhild Mostad", "Anne Jo", "Christian", "Magnus Fjeldstad", "Karoline Risnes", "Stine", "Andrea Ånestad", "Sindre", "Daniel Gangeskar", "Knut Gigs", "Ruth Mari Skulbru", "Klaus")

lapply(folk, function(x) {sjekk.sum(x, sample(1:100)[1], 567)})
## [[1]]
## [1] "Håvard Lied skal ha den nette sum av 1164 kroner."
## 
## [[2]]
## [1] "Marita skal ha den nette sum av 1165 kroner."
## 
## [[3]]
## [1] "Magnhild Mostad skal ha den nette sum av 1190 kroner."
## 
## [[4]]
## [1] "Anne Jo skal ha den nette sum av 1190 kroner."
## 
## [[5]]
## [1] "Christian skal ha den nette sum av 1158 kroner."
## 
## [[6]]
## [1] "Magnus Fjeldstad skal ha den nette sum av 1136 kroner."
## 
## [[7]]
## [1] "Karoline Risnes skal ha den nette sum av 1218 kroner."
## 
## [[8]]
## [1] "Stine skal ha den nette sum av 1146 kroner."
## 
## [[9]]
## [1] "Andrea Ånestad skal ha den nette sum av 1174 kroner."
## 
## [[10]]
## [1] "Sindre skal ha den nette sum av 1218 kroner."
## 
## [[11]]
## [1] "Daniel Gangeskar skal ha den nette sum av 1155 kroner."
## 
## [[12]]
## [1] "Knut Gigs skal ha den nette sum av 1173 kroner."
## 
## [[13]]
## [1] "Ruth Mari Skulbru skal ha den nette sum av 1135 kroner."
## 
## [[14]]
## [1] "Klaus skal ha den nette sum av 1230 kroner."