现有有四列数据,分别表示ID、cs、year、lcs(L.cs,即cs滞后值),数据的样子如下所示:
ID cs year lcs
1 1 2013 .
1 1 2014 1
2 .701811 2013 .
2 .6040315 2014 .701811
3 .7170126 2013 .
3 .6925485 2014 .7170126
4 .6914961 2013 .
4 .7010806 2014 .6914961
5 .6980967 2014 .
......
问题:根据2013年的值对2014年进行分组,分成十组
首先,lag2014年数据,ID等于1,2,3,4在2013年都有对应的cs值,分别是1、.701811、.7170126、.6914961,所以保留;ID=5在2013年没有对应的cs值,所以missing;得到2013年的1、.701811、.7170126、.6914961;
然后,将1、.701811、.7170126、.6914961(2013年的ID等于1,2,3,4的cs值)从小到大分为十组;
最后,根据2013年分成的十组,对2014年ID等于1,2,3,4的cs进行分组。
我目前写的代码是这样的,不知道合不合适,向大家请教下。
bys ID lcs: xtile cs10=cs if year==2014&lcs!=. ,nq(10)