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

lapply() กับ Data Frame

ถ้ามี data frame ของผลตอบแทนหุ้นแทนที่จะเป็น list จะใช้ lapply() ได้อยู่ไหม? ได้เลย! อาจฟังดูน่าแปลกใจ แต่ที่จริงแล้ว data frame คือ list ประเภทหนึ่ง และการเรียก lapply() จะนำฟังก์ชันไปใช้กับแต่ละ คอลัมน์ ของ data frame

df
  a b
1 1 4
2 2 6

class(df)
[1] "data.frame"

lapply(df, FUN = sum)
$a
[1] 3

$b
[1] 10

lapply() รวมค่าในแต่ละคอลัมน์ของ data frame แต่ยังคงคืนผลลัพธ์เป็น list ตามปกติ มีการเตรียม data frame ของผลตอบแทนรายวัน ในรูปทศนิยม ชื่อ stock_return ไว้ให้แล้ว

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

R ระดับกลางสำหรับการเงิน

ดูคอร์ส

คำแนะนำการฝึกหัด

  • พิมพ์ stock_return เพื่อดูข้อมูลใน data frame
  • ใช้ lapply() เพื่อคำนวณค่าเฉลี่ย (mean) ของแต่ละคอลัมน์
  • สร้างฟังก์ชันสำหรับคำนวณ Sharpe Ratio โดยให้นำค่าเฉลี่ยของผลตอบแทนมาลบด้วยอัตราผลตอบแทนที่ไม่มีความเสี่ยง (.03%) แล้วหารด้วยส่วนเบี่ยงเบนมาตรฐานของผลตอบแทน
  • ใช้ lapply() เพื่อคำนวณ Sharpe Ratio ของแต่ละคอลัมน์

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Print stock_return
___

# lapply to get the average returns
___

# Sharpe ratio
sharpe <- function(returns) {
    (___ - .0003) / ___
}

# lapply to get the sharpe ratio
___
แก้ไขและรันโค้ด