【发布时间】:2017-09-17 06:44:22
【问题描述】:
我想在 SAS 中创建假人。我的计划是,每次 AnnouncementDate ne 。我想创建一个名为 event=2 的变量,下一个也是 (event=2) 以及之前的五个观察值 1 如果前 5 次观察和公告日期后的第二天不为空,则所有这些都会被标记。 并按类别(例如按股票)
输出数据
date announcementdate event conflict
1115 . . .
2115 . . .
3115 . . .
4115 . . .
5115 . . .
6115 . 1 .
7115 . 1 .
8115 . 1 .
9115 . 1 .
10115 . 1 .
11115 1115 2 .
12115 . 2 .
13115 . .
14115 . 1 .
16115 . 1 .
17115 . 1 .
18115 . 1 .
19115 . 1 .
20115 20115 2
21115 . 1 Y
21115 . 1 Y
22115 22115 2 Y
23115 . 2 Y
24115 . .
25115 . .
如果现在切换到下一只股票,它应该重新开始,而不是考虑之前的观察结果。
我当前的代码做了一个引导项,因为我只将事件列与 firstobs=2 合并。无论如何,这 5 倍的延迟让我感到困扰,以及之前有观察时的冲突。
data want1 ; set have;;
if announcementdate ne . then event=0;
run;
data want2; merge want1 (firstobs=2) want1 (keep=event rename= (event=event2));
if event2=0 then event=0;
if event2=0 then event=event2;
run;
感谢您的任何意见!
【问题讨论】: