Lặp qua từng hàng của data frame
Hãy tưởng tượng bạn quan tâm đến những ngày mà giá cổ phiếu của Apple vượt trên 117. Nếu vượt ngưỡng này, bạn muốn in ra ngày hiện tại và giá cổ phiếu. Nếu bạn có một data frame stock với cột date và cột giá apple, bạn có thể lặp qua các hàng của data frame để làm việc này không? Chắc chắn là có!
Trước khi làm, lưu ý rằng bạn có thể lấy số hàng trong data frame bằng nrow(stock). Sau đó, bạn có thể tạo một dãy để lặp từ 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"
Đoạn này kết hợp khá nhiều thứ bạn đã học đến giờ: if statement, trích lọc (subsetting) vector, điều kiện và vòng lặp! Chúc mừng bạn đã học được rất nhiều!
Data frame stocks đã sẵn sàng để bạn sử dụng.
Bài tập này là một phần của khóa học
R trung cấp cho Tài chính
Hướng dẫn bài tập
- Điền vào các chỗ trống trong vòng lặp for để đáp ứng các yêu cầu sau:
pricephải chứa giá ở lần lặp đódatephải chứa ngày ở lần lặp đó- Lần này, bạn muốn biết khi nào
applevượt trên116. - Nếu vượt, hãy in ra
datevàprice. - Nếu thấp hơn
116, hãy in radatevà in rằng đó không phải là một ngày quan trọng!
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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!"))
}
}