我正在尋找獲取波動函數以使用我的數據框的幫助。在下面的函數中,我只是試圖獲取每種證券的價格每日對數回報(我的數據中的每個列都是隨着時間的推移而出現的不同證券價格),然後計算每年的價格。R:解釋NAs的波動函數
volcalc= function (x) {
returns=log(x)-log(lag(x))
vol=sd(returns)*sqrt(252)
return(vol)
}
然後我用下面的函數運行它,但它返回一個只有NAs的1 * ncol數值向量。
testlag=apply(dataexample,2,volcalc)
我的數據框有來港嘉豪(它包括在整個時間段的所有資產,即使他們不在身邊的時候),和一個明確的問題是,我的功能被忽略了來港。但是當我試圖將各種na.rm = TRUE添加到該函數時,它根本不起作用。
下面是一個示例數據集,其中列x和y是不同的證券,每行代表一天。
structure(list(x = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L,
NA, NA), y = c(3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, NA, NA, NA, NA
)), .Names = c("x", "y"), row.names = c(NA, 12L), class = "data.frame")
我的問題是:如何既包含在NAS的功能或重寫功能解決這個問題以不同的方式?感謝您的幫助!
感謝您的幫助 - 這對我的數據非常有效。 –