Kom igångKom igång gratis

Loopa över rader i en dataram

Tänk dig att du vill hitta de dagar då Apples aktiekurs stiger över 117. Om kursen överstiger detta värde vill du skriva ut aktuellt datum och aktiekurs. Om du har en dataram stock med kolumnerna date och apple, kan du loopa över raderna för att åstadkomma detta? Det kan du absolut!

Innan du gör det bör du notera att du kan hämta antalet rader i din dataram med nrow(stock). Sedan kan du skapa en sekvens att loopa över med 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"

Här kombineras flera saker vi har lärt oss hittills: if-satser, delurval av vektorer, villkor och slingor! Bra jobbat – du har lärt dig mycket!

Dataramen stocks finns tillgänglig för dig att använda.

Den här övningen är en del av kursen

R för finans – fortsättningskurs

Visa kurs

Övningsinstruktioner

  • Fyll i luckorna i for-slingan så att följande gäller:
    • price ska innehålla priset för den aktuella iterationen
    • date ska innehålla datumet för den aktuella iterationen
    • Den här gången vill du kontrollera om apple överstiger 116.
    • Om det stämmer, skriv ut date och price.
    • Om kursen var under 116, skriv ut date och en text om att det inte var en viktig dag!

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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!"))
    }
}
Redigera och kör kod