我相信我失去了一些東西簡單,但如何計算使用data.tables R中日回報?[R data.table回報計算和set()
比方說,我有一個像data.table:
DT <- data.table(ticker=rep(letters,each=5), priceA=runif(5*26^2), priceB=runif(5*26^2))
如何我形成價格的每個股票的回報率分別新列?
通過返回我的意思是正常比例的回報。也就是說,ticker a的priceA的第二個值減去同一個ticker的前一個值,然後除以前一個值。
鑑於同列股票的例子,priceA和priceB我應該得到的列returnsA爲:
ticker priceA priceB returnsA
1: a 0.63519775 0.04784728
2: a 0.01530738 0.34917328 -0.97590
3: a 0.28601406 0.12307475 17.68472
4: a 0.77851212 0.47829863 1.721937
5: a 0.84078779 0.23491432 0.079993
而且,我怎麼使用的set()
代替:=
使某物像
DT[, newprice := priceA * priceB]
?
謝謝! :)
對於'set',也許'DT [,newprice:= NA];集(DT,J = 4L,值= DT [[ 'priceA']] * DT [[ 'priceB']])'您沒有定義的 「返回」 愛好。 – Frank
謝謝你的回答,這正是我想要的set()。我更新了我的問題並添加了一個示例。 – pidosaurus