วนลูปผ่านสมาชิกในเมทริกซ์
ที่ผ่านมาเราวนลูปผ่านโครงสร้างข้อมูลแบบ 1 มิติ แต่ถ้าต้องการวนลูปผ่านสมาชิกในเมทริกซ์ (ทั้งแถวและคอลัมน์) จะต้องใช้ nested loop หรือลูปซ้อนลูป เราจะนำแนวคิดนี้มาใช้แสดงค่าความสัมพันธ์ (correlation) ระหว่างหุ้น 3 ตัว
วิธีคิดที่ง่ายที่สุดคือ เริ่มต้นที่แถวที่ 1 แล้วเลื่อนไปทางขวาทีละคอลัมน์ ตั้งแต่ col1, col2, … จนถึงคอลัมน์สุดท้ายของแถวนั้น จากนั้นเลื่อนลงไปแถวที่ 2 แล้วทำซ้ำกระบวนการเดิม
my_matrix
[,1] [,2]
[1,] "r1c1" "r1c2"
[2,] "r2c1" "r2c2"
# Loop over my_matrix
for(row in 1:nrow(my_matrix)) {
for(col in 1:ncol(my_matrix)) {
print(my_matrix[row, col])
}
}
[1] "r1c1"
[1] "r1c2"
[1] "r2c1"
[1] "r2c2"
เมทริกซ์ความสัมพันธ์ corr ถูกเตรียมไว้ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
R ระดับกลางสำหรับการเงิน
คำแนะนำการฝึกหัด
- แสดงผล
corrเพื่อดูข้อมูลเบื้องต้น - เติม nested for loop ให้สมบูรณ์ โดยมีเงื่อนไขดังนี้:
- ลูปวงนอกให้วนผ่าน
rowของcorr - ลูปวงในให้วนผ่าน
colของcorr - คำสั่ง print ให้แสดงชื่อของคอลัมน์และแถวปัจจุบัน พร้อมทั้งค่าความสัมพันธ์ของทั้งคู่
- ลูปวงนอกให้วนผ่าน
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Print out corr
___
# Create a nested loop
for(row in 1:nrow(___)) {
for(col in 1:___(corr)) {
print(paste(colnames(corr)[___], "and", rownames(corr)[___],
"have a correlation of", corr[row,col]))
}
}