收益

如何計算 4000 家公司數據集中每家公司的 R 月收益?

  • October 9, 2020

我想計算 2014 年至 2019 年間 4000 家公司的時間序列的月回報率。

這就是我的數據集的樣子 在此處輸入圖像描述

我正在使用以下程式碼來計算回報

nyseamex <- mutate(nyseamex, mon_return= adjprice/lag(adjprice)-1)

到目前為止,一切都很好。然而,查看數據 R 會為每個調整後的價格計算每月回報。一旦公司名稱更改,就會出現問題:

在此處輸入圖像描述

我嘗試使用函式 group_by() 對名稱進行分組,但是當我執行我的函式時收到一條錯誤消息,請參見下文:

在此處輸入圖像描述

有誰知道如何計算數據集中每家公司的正確回報,例如在新公司的第一個條目的回報列中包含 NA,而不是計算截至最後日期的回報並對每家新公司執行相同的程序在系列中?

提前致謝。

我現在手頭沒有 R/dplyr,但以下應該可以工作:

nyseamex %&lt;&gt;% group_by(name) %&gt;% mutate(mon_return = adjprice/lag(adjprice)-1) %&gt;% ungroup()

第一個運算符%&lt;&gt;%是重新賦值運算符,實際上是 x=f(x),當使用任何管道運算符 ( %&gt;%and %&lt;&gt;%) 時,可以刪除函式的第一個參數。因此,

x=f(x,y)

會變成

x %&lt;&gt;% f(y)

編輯 如果您首先需要對數據進行排序,我建議

data %&gt;% arrange(column)

來自dplyr宇宙……我完全建議以 dplyr 的方式使用這些東西。程式碼非常乾淨,可讀性強,可以輕鬆插入不同的操作…

引用自:https://quant.stackexchange.com/questions/58553