我有一个投资组合组件的数据集,它提供了我的投资组合中在每个重新平衡日期(每月)持有的 10 只股票的信息。
一个只有 4 个日期和 4 个股票的示例数据框:
Date <- c(rep(as.Date("2010/12/14"), 4), rep(as.Date("2011/01/13"), 4), rep(as.Date("2011/02/10"), 4),rep(as.Date("2011/03/10"), 4))
Name <- c("A","B","C","D","A","C","F","G","A","B","F","H","A","F","H","I")
df <- data.frame(Date, Name)
股票在日期之间会有所不同,因此我需要根据我购买、持有或出售每只股票来计算直接交易成本。我想要的是根据这个添加一个值为 0,1,2 的列,以便:
- 如果股票在时间 t-1 和时间 t 持有,则值为 0
- 如果股票在时间 t-1 持有,但在时间 t 卖出,价值 1
- 如果股票在时间 t-1 买入,并且在时间 t 持有(未卖出),则价值 1
- 如果股票在时间 t-1 买入,在时间 t 卖出,则值为 2
将值分配给 t-1 时的库存。
这看起来像的例子:
Date Stock Status
2010-12-14 A 1
2010-12-14 B 2
2010-12-14 C 1
2010-12-14 D 2
2011-01-13 A 0
2011-01-13 C 1
2011-01-13 F 1
2011-01-13 G 2
2011-02-10 A 0
2011-02-10 B 1
2011-02-10 F 0
2011-02-10 H 1
2011-03-10 A
2011-03-10 F
2011-03-10 H
2011-03-10 I