【发布时间】:2022-01-21 02:15:26
【问题描述】:
我有一个时间序列面板数据集,其结构如下: 有多个基金,每个基金都拥有多只股票,我们有该投资组合中股票权重的时间序列以及当年投资组合的总价值。 如您所见,面板不平衡。
df <- data.frame(
fund_id = c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L),
stock_id = c(1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 3L, 3L, 2L, 2L, 3L, 3L, 3L),
year = c(2011L, 2012L, 2011L, 2012L, 2013L, 2011L, 2012L, 2013L, 2012L,2013L, 2011L, 2012L, 2013L, 2014L, 2011L, 2012L, 2013L),
weight = c(0.3L, 0.2L, 0.7L, 0.8L, 1L, 0.2L, 0.1L, 0.2L, 0.7L, 0.8L, 0.8L, 0.2L, 0.3L, 1L, 0.5L, 0.2L, 0.7L),
aum = c(3L, 3.5L, 3L, 3.5L, 4L, 5L, 4L, 5L, 4L, 5L, 5L, 4L, 6L, 7L, 5L, 6L, 6L)
)
> df
fund_id stock_id year weight aum
1 1 1 2011 0.3 3.0
2 1 1 2012 0.2 3.5
3 1 2 2011 0.7 3.0
4 1 2 2012 0.8 3.5
5 1 2 2013 1.0 4.0
6 2 1 2011 0.2 5.0
7 2 1 2012 0.1 4.0
8 2 1 2013 0.2 5.0
9 2 2 2012 0.7 4.0
10 2 2 2013 0.8 5.0
11 2 3 2011 0.8 5.0
12 2 3 2012 0.2 4.0
13 3 2 2013 0.3 6.0
14 3 2 2014 1.0 7.0
15 3 3 2011 0.5 5.0
16 3 3 2012 0.2 6.0
17 3 3 2013 0.7 6.0
>
请注意,i 是基金编号,n 是股票编号,在这种情况下,j 应该是除 i 之外的任何其他基金。该公式每年都会重复,所以我去掉了下标 t。 aum 仅取决于 fund_id 和 year 而不是股票,因此对于相同的基金和年份,它的值相同,但股票 id 不同。
我正在考虑使用 dplyr 来执行此操作,但我有一个非常大的面板数据集,不知道如何解决这个问题。
【问题讨论】:
标签: r dplyr panel-data