【发布时间】:2018-02-13 16:44:36
【问题描述】:
我有一个关于根据指标从 R 中的 data.frame 中提取多个值的问题
我有一个如下所示的 data.frame (df)
ROW COMPANY PRICE DATE EVENT
1 APPLE 1.50 Jan02 0
2 APPLE 1.70 Feb02 1
3 APPLE 1.65 Mar02 0
4 APPLE 1.20 Apr02 0
5 APPLE 1.30 May02 0
6 APPLE 1.14 Jun02 0
7 APPLE 1.10 Jul02 0
. . . . .
. . . . .
349.997 MICROSOFT 0.80 Sep16 0
349.998 MICROSOFT 0.65 Oct16 0
349.999 MICROSOFT 1.10 Nov16 1
350.000 MICROSOFT 0.90 Dez16 0
如您所见,我有一个大型 data.frame,其中包含各种公司及其在给定日期的股价。另外我有一个事件列(只有 0 和 1 作为值)。值 1 表示在给定日期发生了特定事件(例如股东大会)。在 350.000 行中,我有 2.500 个事件(这意味着 Column Event 有 2.500 个 1 和 347.500 个零)。
现在我的目标是围绕特定事件分析股票价格(例如分析事件发生前 10 个月和事件发生后 15 个月的股票价格)。现在来看看我是如何进行的以及我目前被困在哪里。
首先,我必须根据我的公司拆分我的 data.frame,因为如果我在我的观察期(2002-2016 年)之外,我需要获得 NA。例如如果苹果在 nov16 有一个事件,我需要在 2 个月后得到价格,我应该得到一个 NA(因为它超出了我的观察期),但在未拆分的 data.frame 中,我会得到下一个的价格从 Jan02 开始的公司。
list<-split(df, f=df$COMPANY)
现在是我卡住的部分。我需要为每个公司提取活动日之前的 10 个价格和活动日之后的 15 个价格
我试图创建的输出看起来像(注意:“?”=这些值存在,但它们没有显示在上面的示例 df 中)
Event 1 (Apple) Event 2500 (Microsoft)
-10 NA ... ?
-9 NA ... ?
. .
0 1.70 ... 1.10
. .
+15 ? ... NA
抱歉,如果不详细说明,真的很难正确解释我的问题,但我希望我能在某种程度上说清楚。
感谢您的帮助:)
【问题讨论】: