Über Datenrahmen-Zeilen iterieren
Stell dir vor, du interessierst dich für die Tage, an denen der Aktienkurs von Apple über 117 steigt. Wenn er über diesen Wert geht, möchtest du das aktuelle Datum und den Aktienkurs ausgeben. Wenn du einen stock-Datenrahmen mit einer date- und einer apple-Preisspalte hast, könntest du über die Zeilen des Datenrahmens iterieren, um das zu erreichen? Auf jeden Fall!
Bevor du das tust, beachte, dass du die Anzahl der Zeilen in deinem Datenrahmen mit nrow(stock) ermitteln kannst. Dann kannst du eine Sequenz erstellen, über die du mit 1:nrow(stock) iterierst.
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"
Das kombiniert eine Reihe von Dingen, die wir bisher gelernt haben: if-Anweisungen, das Teilmengenbilden von Vektoren, Bedingungen und Schleifen! Glückwunsch, dass du schon so viel gelernt hast!
Der Datenrahmen stocks steht dir zur Verfügung.
Diese Übung ist Teil des Kurses
R für Finanzen – Aufbaukurs
Anleitung zur Übung
- Fülle die Lücken in der for-Schleife so aus, dass Folgendes gilt:
pricesoll den Preis der aktuellen Iteration enthaltendatesoll das Datum der aktuellen Iteration enthalten- Dieses Mal möchtest du wissen, ob
appleüber116steigt. - Falls ja, gib
dateundpriceaus. - Falls er unter
116lag, gib dasdateaus und dass es kein wichtiger Tag war!
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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!"))
}
}