嗨,我有一个包含以下列的日内数据表:
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 很陌生。
碰
巧的是,您已经询问了一些在最新版本(v1.8.1)中使用新功能在R-Forge存储库中使用最容易完成的事情:按组:=
。
怎么样(未经测试):
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")