data indata;
input stkcd date date7. status $;
cards;
1 1jan01 ST
1 2jan01 NO
1 3jan01 ST
1 1jan02 NO
1 2jan02 NO
1 3dec02 NO
1 1jan03 NO
1 2jan03 ST
1 3dec03 NO
2 1jan01 NO
2 2jan01 NO
2 3jan01 NO
2 1jan02 NO
2 2jan02 NO
2 3dec02 NO
2 1jan03 NO
2 2jan03 NO
2 3dec03 NO
;
run;
* Data preparation;
data input1; set indata;
if status="ST" then st_flag = 1; * Generate an indicator variable for ST companies on all trading days;
else st_flag =0;
year = year(date); * generate a "year" variables, used to merge with annual accounting data;
* Generate annual "ST" indicator: 1 - ST, 0 - NOT ST;
* Creteria: if "ST" on one or more days, annual "ST" (st_annual) is labelled as "ST";
proc sql;
create table input2 as
select distinct stkcd, year,
case
when sum(st_flag) ge 1 then 1
else 0
end as st_annual
from input1
group by stkcd, year;
quit;
* Merge with accounting data;
......


雷达卡

京公网安备 11010802022788号







