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
Övningsinstruktioner
- Fyll i luckorna i for-slingan så att följande gäller:
priceska innehålla priset för den aktuella iterationendateska innehålla datumet för den aktuella iterationen- Den här gången vill du kontrollera om
appleöverstiger116. - Om det stämmer, skriv ut
dateochprice. - Om kursen var under
116, skriv utdateoch 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!"))
}
}