Programmeren in R: de basis: Eigen functies programmeren
Verstekwaarden voor argumenten van een functie
Sommige argumenten van een functie kun je een verstekwaarde geven zodat je ze in een aanroep van de functie kunt weglaten. Bekijk het volgende voorbeeld van een afstandsfunctie
De Euclidische afstand tussen twee punten \((x_1,y_1)\) en \((x_2,y_2)\) wordt gegeven door \[\text{afstand}=\sqrt{(x_1-x_2)^2+(y_1-y_2)^2}\] We definiëren de functie afstand
die de afstand tussen twee punten berekent en in het geval er maar één punt als argument in een aanroep van deze functie staat de verstekwaarde \((0,0)\) voor het tweede punt gebruikt. We gebruiken de coördinaten van de punten als 4 argumenten voor de functie.
Het R script
afstand <- function(P1_x, P1_y, P2_x=0, P2_y=0) {
return(sqrt((P1_x - P2_x)^2+(P1_y - P2_y)^2))
}
cat("afstand tussen (1,2) en (3,4) =", afstand(1,2,3,4), "\n")
cat("afstand tussen (1,2) en (3,4) =", afstand(1,2,4, P2.x=3), "\n")
cat("afstand tussen (1,2) en (3,0) =", afstand(1,2,1), "\n")
cat("afstand tussen (1,2) en (0,0) =", afstand(1,2), "\n")
levert het volgende resultaat op:
afstand tussen (1,2) en (3,4) = 2.828427 afstand tussen (1,2) en (3,4) = 2.828427 afstand tussen (1,2) en (3,0) = 2 afstand tussen (1,2) en (0,0) = 2.236068
Ontgrendel volledige toegang