全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3050 4
2009-11-18
急。
现有一面板数据,其中有一个变量是年份,我现在要去掉年份数值出现次数少于7的数值,请问怎么办?

不知道我描述清楚没有,意思就是一组数据中,出现次数小于7的全部删除,保留次数等于和大于7次的。

谢谢各位啦。

望高手给解,在北京的我请吃饭哦。呵呵。




二维码

扫码加我 拉你入群

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

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

全部回复
2009-11-18 16:46:55
data tmp;
        input year $ x;
        datalines;
1997 1
1997 2
1998 1
1998 2
1998 3
1998 4
1998 5
1998 6
1998 7
1998 8
1999 1
1999 2
;
run;
proc sort data=tmp;
        by year;
run;

data t2;       
        length var $ 400;
        retain  var ;
        set tmp end=last;
        by year;
        if first.year then sum=0;
        sum+1;
        if last.year then do;
                if sum<7 then var=catx(',',compress(var),compress(year));
        end;
        if last then call symput('varname',var) ;
run;

data t3(drop=var sum);
        set t2;
        if year in(&varname) then delete;
run;
二维码

扫码加我 拉你入群

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

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

2009-11-18 16:56:34
非常感谢LS.
二维码

扫码加我 拉你入群

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

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

2009-11-18 20:13:10
linconer 发表于 2009-11-18 16:56
非常感谢LS.
data tmp;
        input year $ x;
        datalines;
1997 1
1997 2
1998 1
1998 2
1998 3
1998 4
1998 5
1998 6
1998 7
1998 8
1999 1
1999 2
;
run;
proc sql;create table final as select * from tmp group by year having count((year))>=7 order year ,x ;quit;
二维码

扫码加我 拉你入群

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

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

2009-11-19 08:47:24
向高手学习
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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