lapply() pada data frame
Jika, alih-alih sebuah list, Anda memiliki data frame berisi return saham, apakah Anda tetap bisa menggunakan lapply()? Ya! Mungkin mengejutkan, data frame sebenarnya adalah list di balik layar, dan pemanggilan lapply() akan menerapkan fungsi ke setiap kolom dalam 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() menjumlahkan setiap kolom dalam data frame, tetapi tetap mengikuti konvensinya untuk selalu mengembalikan sebuah list. Sebuah data frame berisi return harian saham dalam bentuk desimal bernama stock_return telah disediakan.
Latihan ini adalah bagian dari kursus
R Tingkat Menengah untuk Keuangan
Petunjuk latihan
- Cetak
stock_returnuntuk melihat data frame. - Gunakan
lapply()untuk mendapatkan rata-rata (mean) dari setiap kolom. - Buat fungsi untuk rasio Sharpe. Fungsi ini harus mengambil rata-rata return, menguranginya dengan tingkat bebas risiko (
.03%), lalu membaginya dengan simpangan baku (standard deviation) dari return. - Gunakan
lapply()untuk menghitung rasio Sharpe dari setiap kolom.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Print stock_return
___
# lapply to get the average returns
___
# Sharpe ratio
sharpe <- function(returns) {
(___ - .0003) / ___
}
# lapply to get the sharpe ratio
___