1. 国泰安数据库的会计三表,选取的A股上市公司97年到2013年的资产负债,利润表,现金流量表的全部数据,因为想选取的是年度数据,所以对会计期间accper data bs;set bs0; year_c=substr(accper,1,4)+0; month=substr(accper,6,2)+0; if month=12; drop month accper; run; 以资产负债表bs为例,国泰安数据导出的是107390行,会计期间选取期末的后变为24187行,小于1/4*107390,所以可能有的公司没有年末数据,这个时候样本实际缺失了,该怎么处理呢? 2.处理过accper后将,bs,is,cfs根据stkcdyear_c并在一起 data cwsj; merge bs is cfs; by stkcd year_c; run; 3. 表1:cwsj,里面有stkcd,year_c,控制变量x1,x2,x3…year_c有的是97—13年所有年度,有的公司因为上市年份在97年之后,year_c只有例如2000—2013or2011-2013or…等等某段年度; stkcd year x1 x2 x3 … 000005 | 2005 | 000005 | 2006 | 000005 | 2007 | 000005 | 2008 | 000005 | 2009 | 000005 | 2010 | 000005 | 2011 | 000005 | 2012 | 000005 | 2013 | 000011 | 2011 | 000011 | 2012 | 000011 | 2013 | 000012 | 1998 | 000012 | 1999 | 000012 | 2000 | 000012 | 2001 | 000012 | 2002 | 000012 | 2003 | 000012 | 2004 | 000012 | 2005 | 000012 | 2006 | 000012 | 2007 | 000012 | 2008 | 000012 | 2009 | 000012 | 2010 | 000012 | 2011 | 000012 | 2012 | 000012 | 2013 |
… 表2:dz:,里面有stkcd, listyear(该公司上市年份), regplc(注册地)变量; Stkcd regplc listyear 00001 city3 2011 00002 city4 1999 00003 city5 1997 … 表3:test,里面有regplc,year(所有regplc对应的都是98—13年完整年度),解释变量: ok1, ok2, ok3… Regplc year ok1 ok2 ok3 … City1 | 1998 | City1 | 1999 | City1 | 2000 | City1 | 2001 | City1 | 2002 | City1 | 2003 | City1 | 2004 | City1 | 2005 | City1 | 2006 | City1 | 2007 | City1 | 2008 | City1 | 2009 | City1 | 2010 | City1 | 2011 | City1 | 2012 | City1 | 2013 | City2 | 1998 | City2 | 1999 | City2 | 2000 | City2 | 2001 | City2 | 2002 | City2 | 2003 | City2 | 2004 | City2 | 2005 | City2 | 2006 | City2 | 2007 | City2 | 2008 | City2 | 2009 | City2 | 2010 | City2 | 2011 | City2 | 2012 | City2 | 2013 |
… 现在想在cwsj表每年上都能接上test解释变量 并在一起回归该如何处理~~~~~
我是先把cwsj和dz根据stkcd合并 proc sortdata=cwsj; by stkcd ; run; proc sortdata=dz; by stkcd ; run; data data1; merge cwsj dz; by stkcd;
run;
但是再把data1和test根据regplc合并就会出现错误匹配,我想要的是year_c的年度也可以对应的上year但不知道该如何处理~~
不知道表达清楚没,求助大侠解答
|