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 vectorelementen 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
Oefeninstructies
Maak de template voor de functie interpret_all() af:
- Maak
return_sumeen optioneel argument, standaardTRUE. - Itereer binnen de
for-lus over alleviews: voeg bij elke iteratie het resultaat vaninterpret(v)toe aancount. Onthoud datinterpret(v)vteruggeeft voor populaire dagen en anders0. Tegelijkertijd zorgtinterpret(v)ook voor wat printuitvoer. - Maak het
if-construct af: - Als
return_sumTRUEis, retourneercount. - 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