Loop over rijen van een data frame
Stel dat je geïnteresseerd bent in de dagen waarop de aandelenkoers van Apple boven de 117 uitkomt. Als die boven deze waarde gaat, wil je de huidige datum en koers afdrukken. Als je een stock-dataframe hebt met een kolom date en een kolom met de prijs van apple, kun je dan over de rijen van het dataframe loopen om dit te doen? Zeker weten!
Voordat je begint: je kunt het aantal rijen in je dataframe opvragen met nrow(stock). Vervolgens kun je een reeks maken om over te loopen met 1:nrow(stock).
for (row in 1:nrow(stock)) {
price <- stock[row, "apple"]
date <- stock[row, "date"]
if(price > 117) {
print(paste("On", date,
"the stock price was", price))
}
}
[1] "On 2016-12-21 the stock price was 117.06"
[1] "On 2016-12-27 the stock price was 117.26"
Dit combineert een aantal zaken die je tot nu toe hebt geleerd: if-statements, vectoren subsetten, conditionals en loops! Gefeliciteerd met hoeveel je al hebt geleerd!
Het stocks-dataframe is voor je beschikbaar.
Deze oefening maakt deel uit van de cursus
R voor finance voor gevorderden
Oefeninstructies
- Vul de lege plekken in de for-loop in zodat het volgende klopt:
pricebevat de koers van die iteratiedatebevat de datum van die iteratie- Deze keer wil je weten of
appleboven de116komt. - Als dat zo is, print de
dateenprice. - Als het onder de
116was, print dan dedateen dat het geen belangrijke dag was!
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Loop over stock rows
for (row in 1:___) {
price <- stock[___, "___"]
date <- stock[___, "___"]
if(___ > ___) {
print(paste("On", ___,
"the stock price was", ___))
} else {
print(paste("The date:", ___,
"is not an important day!"))
}
}