0

嗨,我有一个包含以下列的日内数据表:

 date, stock_id, timestamp, price

首先,我添加了正确订购的钥匙:

setkeyv( my_table, c('stock_id','date','timestamp'))

数据看起来像:

     date      timestamp    stock_id      price       
 2011-01-04    1.294128e+12    7          3402.0     
 2011-01-04    1.294129e+12    7          3402.5     
 2011-01-04    1.294129e+12    7          3407.5    

现在我想将 stock_price 转换为收益并记录收益。

您能否指出一种有效/优雅的方法来在 R 和 data.table 分组中执行此操作而不使用循环?

非常感谢,我对 R 很陌生。

4

1 回答 1

1

碰巧的是,您使用新功能在 R-Forge 存储库的最新版本 (v1.8.1) 中询问了最容易完成的事情::=按组。

怎么样(未经测试):

my_table[, logret:=c(NA,diff(log(stock_price))), by=stock_name]

要从 R-Forge 安装 v1.8.1 而不从源代码编译,您需要运行 R 2.15.0 或更高版本,然后只需键入:

install.packages("data.table", repos="http://R-Forge.R-project.org")
于 2012-07-06T14:10:06.803 回答