Aan de slagGa gratis aan de slag

R you functional? (2)

Een mogelijke implementatie van de functie interpret() is al voor je toegevoegd. In deze oefening ga je een andere functie schrijven die de functie interpret() gebruikt om alle gegevens uit je dagelijkse profielweergaven in een vector te interpreteren. Daarnaast geeft je functie, als daarom wordt gevraagd, de som van weergaven op populaire dagen terug. Een for-lus is ideaal om over alle vector­elementen te itereren. De mogelijkheid om de som van weergaven op populaire dagen terug te geven, kun je inbouwen via een functieargument met een standaardwaarde.

Deze oefening maakt deel uit van de cursus

R voor gevorderden

Cursus bekijken

Oefeninstructies

Maak de template voor de functie interpret_all() af:

  • Maak return_sum een optioneel argument, standaard TRUE.
  • Itereer binnen de for-lus over alle views: voeg bij elke iteratie het resultaat van interpret(v) toe aan count. Onthoud dat interpret(v) v teruggeeft voor populaire dagen en anders 0. Tegelijkertijd zorgt interpret(v) ook voor wat print­uitvoer.
  • Maak het if-construct af:
  • Als return_sum TRUE is, retourneer count.
  • Anders retourneer je NULL.

Roep deze nieuw gedefinieerde functie aan op zowel linkedin als facebook.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# The linkedin and facebook vectors have already been created for you
linkedin <- c(16, 9, 13, 5, 2, 17, 14)
facebook <- c(17, 7, 5, 16, 8, 13, 14)

# The interpret() can be used inside interpret_all()
interpret <- function(num_views) {
  if (num_views > 15) {
    print("You're popular!")
    return(num_views)
  } else {
    print("Try to be more visible!")
    return(0)
  }
}

# Define the interpret_all() function
# views: vector with data to interpret
# return_sum: return total number of views on popular days?
interpret_all <- function(views, return_sum) {
  count <- 0

  for (v in views) {

  }

  if (return_sum) {

  } else {

  }
}

# Call the interpret_all() function on both linkedin and facebook
Code bewerken en uitvoeren