วนลูปผ่านแถวของ Data Frame
ลองจินตนาการว่าคุณสนใจวันที่ราคาหุ้น Apple พุ่งสูงกว่า 117 หากราคาเกินค่านี้ คุณต้องการพิมพ์วันที่และราคาหุ้นในขณะนั้น หากมี data frame ชื่อ stock ที่มีคอลัมน์ date และราคา apple คุณสามารถวนลูปผ่านแถวของ data frame เพื่อทำสิ่งนี้ได้เลย!
ก่อนเริ่ม ให้รู้ไว้ว่าสามารถดึงจำนวนแถวใน data frame ได้ด้วย nrow(stock) จากนั้นสร้าง sequence สำหรับวนลูปโดยใช้ 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"
โค้ดนี้รวบรวมหลายสิ่งที่เรียนมา ไม่ว่าจะเป็น if statement การ subset เวกเตอร์ เงื่อนไข และลูป ยินดีด้วยที่เรียนรู้มาได้มากขนาดนี้!
สามารถใช้ data frame stocks ที่เตรียมไว้ให้ได้เลย
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
R ระดับกลางสำหรับการเงิน
คำแนะนำการฝึกหัด
- กรอกช่องว่างใน for loop ให้ครบ เพื่อให้เงื่อนไขต่อไปนี้เป็นจริง:
priceควรเก็บราคาของแต่ละรอบการวนลูปdateควรเก็บวันที่ของแต่ละรอบการวนลูป- คราวนี้ให้ตรวจสอบว่า
appleขึ้นไปสูงกว่า116หรือไม่ - ถ้าใช่ ให้พิมพ์
dateและprice - ถ้าต่ำกว่า
116ให้พิมพ์dateพร้อมแจ้งว่าไม่ใช่วันที่มีความสำคัญ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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!"))
}
}