全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件
1180 4
2011-04-15
现有一问题急需解决,n个观测值是一组(在此以n=10为例,实际可能上百),每个观测值对应一个code,理论上同一组的code应该是相同的,但实际数据中每组均有部分观测值的code与其他值不一致。怎样才能将这些code错误的观测值与其他观测值纳入同一组?
数据格式示意如下:
obs   code
1       1000     
2       1000
3       1000
4       1020
5       1000
6       1000
7       1110
8       1000
9       1000
10     1000
11     1001
12     1001
13     1001
14     1023
15     1001
16     1001
17     1001
18     1024
19     1222
20     1001   
;
如第一组的obs4和obs7的code发生了错误,第二组的obs14、obs18、obs19发生了错误,若按code值对数据进行分组,obs4和obs7就不能分到第一组,obs14、obs18、obs19不能分到第二组。但我需要将其分别纳入第一、二组,求高人指点,应该怎么办?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2011-4-15 01:17:09
忘记说明了一点问题,实际数据中每组的样本量是不同的,并不都是10例。由于实际数据太庞大,故无法进行详细展示。去高手支招啊!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-4-15 05:38:52
Here is a solution. Hope it helps.

Note:
1. If sample size are the same for each of the group, just replace the number in n=
2. If sample size varies, then there must be some flag indicating the group number, you can skip the part of "Define Group Indicator"
3. The program assumes the correct code value appears most so it is the "Mode" of each group

%let n=10;
data ds;
input obs   code ;
cards;
1      1000
2      1000
3      1000
4      1020
5      1000
6      1000
7      1110
8      1000
9      1000
10     1000
11     1001
12     1001
13     1001
14     1023
15     1001
16     1001
17     1001
18     1024
19     1222
20     1001
;
run;
/* Define Group Indicator*/
data ds;
set ds;
grp=floor((obs-1)/&n)+1;
run;
/* End Define Group Indicator*/

proc means data=ds mode noprint;
by grp;
output out=dsmode(keep=grp code rename=(code=mode)) mode=;
run;

data ds3;
merge ds dsmode;
by grp;
run;

data ds4;
set ds3;
Error=(code ne mode);
code_correct=mode;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-4-15 09:12:28
多组之后一个异常的code与之前某组的code相同,是该code异常还是之间所有code异常?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-4-15 10:06:51
回复soporaeternus 的问题,实际数据中每组异常的code仅出现一次,不存在“多组之后一个异常的code与之前某组的code相同”的情况。如果有,根据我的目的,也只是算这一个code异常。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群