Bij heel wat sporten waar een jury punten toekent maakt men gebruik van het zogenaamd Olympisch gemiddelde. Dit een gemiddelde waarbij de grootste en kleinste waarden weggelaten worden.

Een voorbeeld als illustratie. Op het onderdeel halfpipe bij het snowboarden1 op de Olympische winterspelen kennen zes juryleden de volgende scores toe: 98, 97, 98, 99, 100 en 98. De laagste score is 97 en de hoogste score is 100, deze waarden worden weggelaten. Van de resterende vier scores is het gemiddelde 98.25, dit is dan ook de score die de snowboarder krijgt.

Een snowboarder.

Een snowboarder.

Gegeven

In deze oefening programmeer je een eigen functie olympic_mean() die gegeven een dataset de vorige definitie implementeert.

Gevraagd

Programmeer nu een functie olympic_mean(). Er zijn verschillende mogelijke manieren om dit aan te pakken, een mogelijke aanpak vind je hieronder.

Voorbeelden

Indien data gelijk is aan c(98, 97, 98, 99, 100, 98), dan verschijnt er:

> olympic_mean(data)
[1] 98.25

Indien data gelijk is aan c(14, 25, 14, 18, 16, 16, 20), dan verschijnt er:

> olympic_mean(data)
[1] 16.8