Я новичок в R и не могу решить ниже самостоятельно.Это, вероятно, довольно легко, но я просто не понимаю, как это сделать!
В настоящее время я работаю с большим набором данных, который имеет тикер PERMNO в столбце 1 и дату временного ряда в столбце 2, а также значение, которое меня интересует, в столбце 3. Полный набор данных содержит данные за 10 лет.за тикер PERMNO.
Моя цель состоит в том, чтобы рассчитать по набору данных для каждой компании в среднем 30 дней вокруг конкретной даты события.Набор данных выглядит следующим образом (в конце поста я добавил работоспособную выдержку с данными, которая лучше демонстрирует, как выглядят данные):
PERMNO Names.Date Price
1 10028 02.01.2009 1.7100
2 10028 05.01.2009 1.7100
3 10028 06.01.2009 1.7100
4 10028 07.01.2009 1.7208
5 10028 08.01.2009 1.8000
Кроме того, у меня есть матрица с соответствующей датой событиясогласно ПЕРМНО-кодуЭто дата вступления события в силу, поэтому мне понадобятся два соответствующих вывода:
- 30 Day Average, который заканчивается датой, предшествующей дате события
- 30 DayСреднее значение, которое начинается с даты события
Поэтому я также имею в качестве входных данных матрицу с датами события (опять же, воспроизводимая в Приложении 2):
PERMNO Event.Date
1 10028 06.02.2009
2 14093 25.03.2014
3 35554 07.10.2015
Например, для кода PERMNO 10028 мне понадобится среднее значение для всех дат в период с 05.01.2009 по 05.02.2009 (что эквивалентно формуле "Averageif" в Excel), а также среднее значение между 06.02.2009 и06.03.2009.Для других кодов PERMNO это будет работать аналогично, только с разными датами событий.
Сейчас я ищу решение, которое заполняет матрицу, подобную приведенной ниже, с двумя средними значениями для каждого кода PERMNO (воспроизводимый пример в Приложении 3):
PERMNO AvgBefore AvgAfter
1 10028 NA NA
2 14093 NA NA
3 35554 NA NA
Опять же, какВ качестве иллюстрации, значение в столбце «AvgBefore» для кода PERMNO 10028 должно быть средним в период с 05.01.2009 по 05.02.2009, в столбце «AvgAfter» - средним в период с 06.02.2009 по 06.03.2009.
Большое спасибо за вашу помощь и решения и, конечно же, счастливого Рождества
R Информация:
Я работаю над R для Windows и установил самую последнюю версию
Приложение 1 - Отрывок воспроизводимого набора данных
DataExcerpt=read.table(text=" PERMNO Names.Date Price
1 10028 02.01.2009 1.7100
2 10028 05.01.2009 1.7100
3 10028 06.01.2009 1.7100
4 10028 07.01.2009 1.7208
5 10028 08.01.2009 1.8000
6 10028 09.01.2009 1.8000
7 10028 12.01.2009 1.8000
8 10028 13.01.2009 1.5500
9 10028 14.01.2009 1.4960
10 10028 15.01.2009 1.4000
11 10028 16.01.2009 1.5000
12 10028 20.01.2009 1.4800
13 10028 21.01.2009 1.4500
14 10028 22.01.2009 1.4999
15 10028 23.01.2009 1.4500
16 10028 26.01.2009 1.4899
17 10028 27.01.2009 1.4899
18 10028 28.01.2009 1.4899
19 10028 29.01.2009 1.4000
20 10028 30.01.2009 1.4000
21 10028 02.02.2009 1.5000
22 10028 03.02.2009 1.3000
23 10028 04.02.2009 1.4500
24 10028 05.02.2009 1.6100
25 10028 06.02.2009 1.5499
26 10028 09.02.2009 1.5700
27 10028 10.02.2009 1.4800
28 10028 11.02.2009 1.4800
29 10028 12.02.2009 1.4500
30 10028 13.02.2009 1.3199
31 10028 17.02.2009 0.9900
32 10028 18.02.2009 1.0100
33 10028 19.02.2009 0.9500
34 10028 20.02.2009 0.9200
35 10028 23.02.2009 0.8200
36 10028 24.02.2009 0.9300
37 10028 25.02.2009 0.9000
38 10028 26.02.2009 0.8800
39 10028 27.02.2009 0.8500
40 10028 02.03.2009 0.8500
41 10028 03.03.2009 0.8500
42 10028 04.03.2009 0.8500
43 10028 05.03.2009 0.8800
44 10028 06.03.2009 0.8000
45 10028 09.03.2009 0.8400
46 10028 10.03.2009 0.8200
47 10028 11.03.2009 0.8300
48 10028 12.03.2009 0.8400
49 10028 13.03.2009 0.8600
50 10028 16.03.2009 0.8600
51 10028 17.03.2009 0.8600
52 10028 18.03.2009 0.8399
53 10028 19.03.2009 0.8735
54 10028 20.03.2009 0.8735
55 10028 23.03.2009 0.8735
56 10028 24.03.2009 0.8700
57 10028 25.03.2009 0.8500
58 10028 26.03.2009 0.7600
59 10028 27.03.2009 0.8500
60 10028 30.03.2009 0.8299
61 10028 31.03.2009 0.8500
62 10028 01.04.2009 0.8500
63 10028 02.04.2009 0.8000
64 10028 03.04.2009 0.8399
65 10028 06.04.2009 0.8000
66 10028 07.04.2009 0.8400
67 10028 08.04.2009 0.8425
68 10028 09.04.2009 0.8500
69 10028 13.04.2009 0.8900
70 10028 14.04.2009 0.8900
71 10028 15.04.2009 0.8600
72 10028 16.04.2009 0.8600
73 10028 17.04.2009 0.8900
74 10028 20.04.2009 0.8900
75 10028 21.04.2009 0.8900
76 10028 22.04.2009 0.9500
77 10028 23.04.2009 1.0967
78 10028 24.04.2009 1.0000
79 10028 27.04.2009 0.9935
80 10028 28.04.2009 0.9500
81 10028 29.04.2009 0.9400
82 10028 30.04.2009 1.0000
83 10028 01.05.2009 0.9500
84 10028 04.05.2009 0.9400
85 10028 05.05.2009 1.0615
86 10028 06.05.2009 1.0000
87 10028 07.05.2009 1.0500
88 10028 08.05.2009 0.9700
89 10028 11.05.2009 1.0700
90 10028 12.05.2009 1.0100
91 10028 13.05.2009 1.0500
92 10028 14.05.2009 1.0500
93 10028 15.05.2009 1.0000
94 10028 18.05.2009 1.0500
95 10028 19.05.2009 1.0300
96 10028 20.05.2009 1.0299
97 10028 21.05.2009 1.0000
98 10028 22.05.2009 1.0199
99 10028 26.05.2009 1.0400
100 14093 07.02.2014 6.1000
101 14093 10.02.2014 6.4900
102 14093 11.02.2014 6.5300
103 14093 12.02.2014 6.4000
104 14093 13.02.2014 6.4700
105 14093 14.02.2014 6.6600
106 14093 18.02.2014 6.6500
107 14093 19.02.2014 6.5000
108 14093 20.02.2014 6.4000
109 14093 21.02.2014 6.6800
110 14093 24.02.2014 6.4200
111 14093 25.02.2014 6.1000
112 14093 26.02.2014 6.2200
113 14093 27.02.2014 6.3500
114 14093 28.02.2014 8.4000
115 14093 03.03.2014 7.6100
116 14093 04.03.2014 7.2500
117 14093 05.03.2014 7.2100
118 14093 06.03.2014 6.9800
119 14093 07.03.2014 7.0500
120 14093 10.03.2014 6.7900
121 14093 11.03.2014 6.5400
122 14093 12.03.2014 6.3600
123 14093 13.03.2014 6.4400
124 14093 14.03.2014 6.4200
125 14093 17.03.2014 6.3400
126 14093 18.03.2014 6.4499
127 14093 19.03.2014 6.3000
128 14093 20.03.2014 6.2000
129 14093 21.03.2014 6.1801
130 14093 24.03.2014 6.1273
131 14093 25.03.2014 6.1000
132 14093 26.03.2014 6.0800
133 14093 27.03.2014 5.9100
134 14093 28.03.2014 5.5885
135 14093 31.03.2014 5.7600
136 14093 01.04.2014 5.8820
137 14093 02.04.2014 6.1500
138 14093 03.04.2014 5.9899
139 14093 04.04.2014 5.7251
140 14093 07.04.2014 5.4554
141 14093 08.04.2014 5.6400
142 14093 09.04.2014 5.6000
143 14093 10.04.2014 5.7700
144 14093 11.04.2014 5.7590
145 14093 14.04.2014 5.6400
146 14093 15.04.2014 5.5000
147 14093 16.04.2014 5.5000
148 14093 17.04.2014 5.4000
149 14093 21.04.2014 5.4099
150 14093 22.04.2014 5.3600
151 14093 23.04.2014 5.3600
152 14093 24.04.2014 5.3600
153 14093 25.04.2014 5.3642
154 14093 28.04.2014 5.5200
155 14093 29.04.2014 5.3090
156 14093 30.04.2014 5.4100
157 14093 01.05.2014 5.4361
158 14093 02.05.2014 5.0500
159 14093 05.05.2014 4.5000
160 14093 06.05.2014 4.2000
161 14093 07.05.2014 4.3900
162 14093 08.05.2014 3.7000
163 14093 09.05.2014 3.8500
164 14093 12.05.2014 3.9400
165 14093 13.05.2014 3.9000
166 14093 14.05.2014 3.8800
167 14093 15.05.2014 3.8000
168 14093 16.05.2014 3.6900
169 14093 19.05.2014 3.7700
170 14093 20.05.2014 3.7200
171 14093 21.05.2014 3.8000
172 14093 22.05.2014 3.6600
173 14093 23.05.2014 3.7723
174 14093 27.05.2014 3.7000
175 14093 28.05.2014 3.6400
176 14093 29.05.2014 3.7100
177 14093 30.05.2014 3.6700
178 14093 02.06.2014 3.6600
179 14093 03.06.2014 3.6154
180 14093 04.06.2014 3.8200
181 14093 05.06.2014 3.8208
182 14093 06.06.2014 3.7997
183 14093 09.06.2014 3.7100
184 14093 10.06.2014 3.7600
185 14093 11.06.2014 3.7000
186 14093 12.06.2014 3.6400
187 14093 13.06.2014 3.7000
188 14093 16.06.2014 3.6500
189 14093 17.06.2014 3.3200
190 14093 18.06.2014 3.2560
191 14093 19.06.2014 3.1200
192 14093 20.06.2014 3.1190
193 14093 23.06.2014 3.1500
194 14093 24.06.2014 3.0600
195 14093 25.06.2014 3.7600
196 14093 26.06.2014 3.5900
197 14093 27.06.2014 3.5600
198 14093 30.06.2014 3.7200
199 14093 01.07.2014 4.1800
200 14093 02.07.2014 4.2500
201 14093 03.07.2014 4.1200
202 14093 07.07.2014 4.0700
203 14093 08.07.2014 4.0700
204 14093 09.07.2014 3.8500
205 14093 10.07.2014 3.7000
206 14093 11.07.2014 3.8000
207 14093 14.07.2014 3.6699
208 14093 15.07.2014 3.6302
209 14093 16.07.2014 3.5600
210 14093 17.07.2014 3.5200
211 14093 18.07.2014 3.4600
212 35554 26.08.2015 117.6900
213 35554 27.08.2015 120.6700
214 35554 28.08.2015 119.0200
215 35554 31.08.2015 118.2400
216 35554 01.09.2015 112.6500
217 35554 02.09.2015 115.2700
218 35554 03.09.2015 118.2600
219 35554 04.09.2015 117.0600
220 35554 08.09.2015 120.1400
221 35554 09.09.2015 120.4100
222 35554 10.09.2015 120.4000
223 35554 11.09.2015 121.0300
224 35554 14.09.2015 121.7700
225 35554 15.09.2015 122.8000
226 35554 16.09.2015 122.0800
227 35554 17.09.2015 120.3800
228 35554 18.09.2015 118.3300
229 35554 21.09.2015 120.0600
230 35554 22.09.2015 117.9900
231 35554 23.09.2015 117.9900
232 35554 24.09.2015 119.0500
233 35554 25.09.2015 121.2100
234 35554 28.09.2015 119.9200
235 35554 29.09.2015 120.1000
236 35554 30.09.2015 121.9500
237 35554 01.10.2015 117.1500
238 35554 02.10.2015 116.6600
239 35554 05.10.2015 118.2800
240 35554 06.10.2015 117.4300
241 35554 07.10.2015 119.6200
242 35554 08.10.2015 120.2000
243 35554 09.10.2015 119.5800
244 35554 12.10.2015 120.1700
245 35554 13.10.2015 119.2500
246 35554 14.10.2015 116.1100
247 35554 15.10.2015 119.3100
248 35554 16.10.2015 117.0000
249 35554 19.10.2015 113.4200
250 35554 20.10.2015 115.5000
251 35554 21.10.2015 115.1700
252 35554 22.10.2015 118.8000
253 35554 23.10.2015 122.6000
254 35554 26.10.2015 123.2200
255 35554 27.10.2015 123.1600
256 35554 28.10.2015 125.5600
257 35554 29.10.2015 123.0200
258 35554 30.10.2015 119.8500
259 35554 02.11.2015 120.2700
260 35554 03.11.2015 120.1400
261 35554 04.11.2015 119.5600
262 35554 05.11.2015 120.6000
263 35554 06.11.2015 123.6600
264 35554 09.11.2015 123.6300
265 35554 10.11.2015 123.5000
266 35554 11.11.2015 124.5600
267 35554 12.11.2015 124.0500
268 35554 13.11.2015 122.4600
269 35554 16.11.2015 123.4800
270 35554 17.11.2015 124.2700
271 35554 18.11.2015 125.3000
272 35554 19.11.2015 125.4300
273 35554 20.11.2015 125.0800
274 35554 23.11.2015 125.0800
275 35554 24.11.2015 124.5900
276 35554 25.11.2015 124.9400
277 35554 27.11.2015 125.4500
278 35554 30.11.2015 125.3300
279 35554 01.12.2015 126.1500
280 35554 02.12.2015 125.0700
281 35554 03.12.2015 122.7900
282 35554 04.12.2015 126.0600
283 35554 07.12.2015 125.5900
284 35554 08.12.2015 123.5600
285 35554 09.12.2015 120.9800
286 35554 10.12.2015 122.6500
287 35554 11.12.2015 120.4100
288 35554 14.12.2015 120.8700
289 35554 15.12.2015 124.2600
290 35554 16.12.2015 126.4200
291 35554 17.12.2015 124.7400
292 35554 18.12.2015 120.0300
293 35554 21.12.2015 120.6400
294 35554 22.12.2015 121.7700
295 35554 23.12.2015 123.2500
296 35554 24.12.2015 123.3300
297 35554 28.12.2015 122.6600
298 35554 29.12.2015 124.0000
299 35554 30.12.2015 122.6400
300 35554 31.12.2015 121.1800
301 35554 04.01.2016 117.4800
302 35554 05.01.2016 118.1300
303 35554 06.01.2016 115.7400
304 35554 07.01.2016 112.4800
305 35554 08.01.2016 110.1700
306 35554 11.01.2016 109.1300
307 35554 12.01.2016 110.4900
308 35554 13.01.2016 106.7200
309 35554 14.01.2016 107.2100
310 35554 15.01.2016 104.4900
311 35554 19.01.2016 106.3500",header=TRUE)
Приложение 2 - Матрица даты воспроизводимого события
EventExcerpt=read.table(text=" PERMNO Event.Date
1 10028 06.02.2009
2 14093 25.03.2014
3 35554 07.10.2015", header=TRUE)
Приложение 3 - Матрица воспроизводимого выхода
OutputExcerpt=read.table(text=" PERMNO AvgBefore AvgAfter
1 10028 NA NA
2 14093 NA NA
3 35554 NA NA",header=TRUE)