Hye Guys,
对于那些经常浏览本网站的人抱歉已经是另一个问题(但我自己确实解决了我的上一个问题!)
我在合并数据集时遇到了另一个问题,似乎在数据集中占用时间是一个真正的痛苦。我成功地在之前的数据集中合并了几个月,但似乎我有一个最终数据集,其中只有四分之一作为时间计数变量。所以我的所有普通数据库都将月份1- xxx作为时间指示器,这个数据库有四分之一作为时间指示器。
我仍然希望将最后一个数据库的变量添加到我的WORK数据库中,我们将其称为TVOL。
快速摘要
季度:第0季= JAN1996-MAR1996
月:第0个月= JAN1996
示例:TVOL
TVOL _______ Ticker __________ Quarter
1500 _______ AA ________________ -1
52546 _______ BB ________________ 15
示例:工作
BETA _______ Ticker __________月
1.52 _______ AA ________________ 2
1.54 _______ BB ________________ 3
示例:合并:
BETA _______________ TVOL _______ Ticker __________月
1.52 ________________ 500 _________ AA ________________ 2
我现在想要使用以下关系合并这两个表
如果月份在第1季度,则必须使用第0季度的数据,因此如果我观察到日期为2FEB1996的nWORK,则必须将1/1的TVOL置于此观察之后。
像IF月=季度我使用数据季度i-1。
另外,由于TVOL每季度测量一次,我必须按月计算,我必须采用平均值,因此(TVOL / 3)应作为变量添加。
谢谢!
答案 0 :(得分:0)
好的,所以我解决了我的问题!
data test;
set test;
Quarter=intck('qtr','01apr96'd,recdats);
put _all_;
run;
proc sort data=test;
by ticker quarter;
run;
proc sort data=wtvol;
by ticker quarter;
run;
data test;
merge test(in=a) wtvol(in=b);
by ticker quarter;
frommerg=a;
fromwtvol=b;
run;
data test;
set test;
if frommerg=0 then delete;
run;
data test;
set test;
if fromwtvol = 0 then delete;
run;
data test;
set test;
drop frommerg fromwtvol;
run;
我在我的基础数据集中创建了一个四分之一变量,并根据季度和自动收录器合并了两组。