繁体   English   中英

data.table和R中的日期操作

[英]Date manipulation in data.table and R

我有一个每月股票收益率的data.table,每行都有一个股票ID字符串CUSIP,以数字形式返回RET,数据时间戳记为Date。

例如:

returns =

 CUSIP     RET        Date
"1000"   -0.11  2001-01-15
"1000"    0.05  2001-02-18

我想将日期设置为月底,然后将日期减去一个月,以使RET有效地滞后一个月,例如:

returns_modified =

 CUSIP     RET        Date
"1000"   -0.11  2000-12-31
"1000"    0.05  2001-01-31

我需要这样做的原因是,这样我就可以将滞后收益数据与另一个包含每月库存信息的data.table合并。 我一直在做的方法是添加两列,分别是Month和Year,其中包含时间戳的月份和年份。 然后使用整数算术移动列。 因此,将dat移回x:

Month = (Year*12+(Month-1)-x) %% 12 + 1
Year  = floor(Year*12+(Month-1)-x)

通过这两列进行合并是可行的,但这非常不雅致。 有一个简单的解决方案吗?

这是你想要的吗?

d = as.Date('2001-01-15')
d - as.POSIXlt(d)$mday
#[1] "2000-12-31"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM