เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

วนลูปผ่านแถวของ 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!"))
    }
}
แก้ไขและรันโค้ด