Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Vul de lege plekken in de for-loop in zodat het volgende klopt:
    • price bevat de koers van die iteratie
    • date bevat de datum van die iteratie
    • Deze keer wil je weten of apple boven de 116 komt.
    • Als dat zo is, print de date en price.
    • Als het onder de 116 was, print dan de date en 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!"))
    }
}
Code bewerken en uitvoeren