我是R的新手,只是有一個簡單的問題。計算數據幀內的每日對數回報
我有一個數據框與時間序列財務數據,並希望計算某些列的日誌回報。當我試圖在表內使用diff(log())
時,出現錯誤消息,表示返回的行與現有表不同。
這是因爲退貨總是低於我假設的原始價格數據。我知道我可以單獨計算回報率作爲一些新的數據框架,但我希望將回報與日期對齊。任何人都可以建議一種方法來解決這個問題? 我使用的代碼如下:
Date MKT_ap MKT_us MKT_au
1 2008-01-02 6237 14613.57 1424303
2 2008-01-03 6161 14587.92 1418566
> #compute market, stock and ADR returns
> data$MR_au = with(data, diff(log(data$MKT_au)))
Error in `$<-.data.frame`(`*tmp*`, "MR_au", value = c(-0.00403606867795503, :
replacement has 1226 rows, data has 1227
謝謝djas的回答!但我認爲它不一定在第一行使用「with」命令,這可能會導致包括所有退貨在內的新列的輸入。我做了如下調整:> a = diff(log(data $ MKT_au)) > data $ MR_au = with(data,c(NA,a)) – cactussss