【发布时间】:2019-02-18 18:33:03
【问题描述】:
我有一个我似乎无法解决的问题。 问题如下:我的数据看起来像这样,它是一个 data.table:
Code Date Marketvalue CommonEquity FiscalYearEnd
1: 13643N 2001-03-30 44.01 26761 2001-09-30
2: 13643N 2001-04-30 35.21 26761 2001-09-30
3: 13643N 2001-05-31 48.82 26761 2001-09-30
4: 13643N 2001-06-29 31.74 26761 2001-09-30
5: 13643N 2001-07-31 32.01 26761 2001-09-30
6: 13643N 2001-08-31 20.27 26761 2001-09-30
7: 13643N 2001-09-28 15.20 26761 2001-09-30
8: 13643N 2001-10-31 18.14 18618 2002-09-30
9: 13643N 2001-11-30 22.14 18618 2002-09-30
10: 13643N 2001-12-31 18.67 18618 2002-09-30
11: 13643N 2002-01-31 21.34 18618 2002-09-30
12: 13643N 2002-02-28 18.19 18618 2002-09-30
13: 13643N 2002-03-29 19.47 18618 2002-09-30
14: 13643N 2002-04-30 17.34 18618 2002-09-30
15: 13643N 2002-05-31 13.07 18618 2002-09-30
16: 13643N 2002-06-28 7.47 18618 2002-09-30
17: 13643N 2002-07-31 7.47 18618 2002-09-30
18: 13643N 2002-08-30 6.46 18618 2002-09-30
19: 13643N 2002-09-30 5.87 18618 2002-09-30
20: 13643N 2002-10-31 6.67 13728 2003-09-30
21: 13643N 2002-11-29 4.16 13728 2003-09-30
22: 13643N 2002-12-31 3.47 13728 2003-09-30
23: 13643N 2003-01-31 3.36 13728 2003-09-30
24: 13643N 2003-02-28 3.36 13728 2003-09-30
25: 13643N 2003-03-31 2.61 13728 2003-09-30
26: 13643N 2003-04-30 3.04 13728 2003-09-30
27: 13643N 2003-05-30 3.84 13728 2003-09-30
28: 13643N 2003-06-30 4.43 13728 2003-09-30
Code Date Marketvalue CommonEquity FiscalYearEnd
我想做的事:每年 t-1 年的每个 6 月我想将 t-1 财年的普通股与上一个 12 月的市场价值相匹配。 现在获得前一个 12 月的市值并不难:我使用 n=6L 的移位函数将 12 月的市值转移到 6 月,但我如何处理普通股呢? 例如:对于 2002 年 6 月,该财政年度的财政年度结束于 2002-09-30,但我需要在 t-1 结束的财政年度的普通股,在这种情况下为 2001-09-30(值为 26761,见 commonequity 列)。 有人可以帮我解决这个问题吗?不幸的是,我没有自己的代码来解决这个问题,因为我根本不知道如何解决财政年度结束问题:(
提前致谢。
编辑:
我包含了预期的输出:
Code Date Marketvalue CommonEquity FiscalYearEnd BEMERatio
1: 13643N 2001-03-30 44.01 26761 2001-09-30 NA
2: 13643N 2001-04-30 35.21 26761 2001-09-30 NA
3: 13643N 2001-05-31 48.82 26761 2001-09-30 NA
4: 13643N 2001-06-29 31.74 26761 2001-09-30 NA
5: 13643N 2001-07-31 32.01 26761 2001-09-30 NA
6: 13643N 2001-08-31 20.27 26761 2001-09-30 NA
7: 13643N 2001-09-28 15.20 26761 2001-09-30 NA
8: 13643N 2001-10-31 18.14 18618 2002-09-30 NA
9: 13643N 2001-11-30 22.14 18618 2002-09-30 NA
10: 13643N 2001-12-31 18.67 18618 2002-09-30 NA
11: 13643N 2002-01-31 21.34 18618 2002-09-30 NA
12: 13643N 2002-02-28 18.19 18618 2002-09-30 NA
13: 13643N 2002-03-29 19.47 18618 2002-09-30 NA
14: 13643N 2002-04-30 17.34 18618 2002-09-30 NA
15: 13643N 2002-05-31 13.07 18618 2002-09-30 NA
16: 13643N 2002-06-28 7.47 18618 2002-09-30 1433.369
17: 13643N 2002-07-31 7.47 18618 2002-09-30 NA
18: 13643N 2002-08-30 6.46 18618 2002-09-30 NA
19: 13643N 2002-09-30 5.87 18618 2002-09-30 NA
20: 13643N 2002-10-31 6.67 13728 2003-09-30 NA
21: 13643N 2002-11-29 4.16 13728 2003-09-30 NA
22: 13643N 2002-12-31 3.47 13728 2003-09-30 NA
23: 13643N 2003-01-31 3.36 13728 2003-09-30 NA
24: 13643N 2003-02-28 3.36 13728 2003-09-30 NA
25: 13643N 2003-03-31 2.61 13728 2003-09-30 NA
26: 13643N 2003-04-30 3.04 13728 2003-09-30 NA
27: 13643N 2003-05-30 3.84 13728 2003-09-30 NA
28: 13643N 2003-06-30 4.43 13728 2003-09-30 5365.418
Code Date Marketvalue CommonEquity FiscalYearEnd BEMERatio
我们没有 2001 年 6 月的 bemeratio,因为我们的数据表中没有 2000 年 12 月的市场价值,而是 2002 年 6 月和 2003 年 6 月的市场价值。 基本上:每年6月:将上一个日历年结束的财政年度的普通股除以上一个12月的市值。在这个 2002 年 6 月的例子中:26761(2001 年结束的财政年度的普通股)除以 18.67(2001 年 12 月的市值)。
对于 2003 年 6 月:18618(截至 2002 年的财政年度的普通股)除以 3.47(2002 年 12 月的市值)
【问题讨论】:
-
能否请您包含您提供的示例数据的预期输出。我很难理解你的散文解释。
-
马上就做
-
我试过这个,但我的问题是:我只是回到上一个财政年度的价值,但有时财政年度在当年的三月或四月结束,那么我需要回去' two' 值,表示上一个日历 (!) 年的三月或四月。
标签: r data.table finance