全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2071 6
2010-03-02
数据集格式如下:
种类    年份   时间
a         2007     01mar 2007
a          2007     05mar2007
a          2008      01apr2008
a         2008      05apr 2008
a         2009       01jan2009
a        2009       04jan2009
b         2007     01mar 2007
b        2007     05mar2007
b       2008      01apr2008
b        2008      05apr 2008
b        2009       01jan2009
b       2009       04jan2009
我想知道每个类每年出现的最早时间?谢谢!每个类每年对应时间很多。
二维码

扫码加我 拉你入群

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

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

全部回复
2010-3-2 11:13:27
data a;
        input id:$2. year:4. tme:date9.;
        cards;
a         2007     01mar2007
a          2007     05mar2007
a          2008      01apr2008
a         2008      05apr2008
a         2009       01jan2009
a        2009       04jan2009
b         2007     01mar2007
b        2007     05mar2007
b       2008      01apr2008
b        2008      05apr2008
b        2009       01jan2009
b       2009       04jan2009
;
run;

proc sort data=a out=b;
        by id year tme;
run;

data c;
        set b;
        by id year tme;
        format tme date9.;
        if first.year;
run;
试试看
二维码

扫码加我 拉你入群

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

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

2010-3-2 12:01:15
waitalone11 发表于 2010-3-2 11:07
数据集格式如下:
种类    年份   时间
a         2007     01mar 2007
a          2007     05mar2007
a          2008      01apr2008
a         2008      05apr 2008
a         2009       01jan2009
a        2009       04jan2009
b         2007     01mar 2007
b        2007     05mar2007
b       2008      01apr2008
b        2008      05apr 2008
b        2009       01jan2009
b       2009       04jan2009
我想知道每个类每年出现的最早时间?谢谢!每个类每年对应时间很多。
I give a SQL approach. The results should be the same as that from 醉_清风's. See below,

data a;
        input id:$2. year:4. tme:date9.;
        cards;
a         2007     01mar2007
a          2007     05mar2007
a          2008      01apr2008
a         2008      05apr2008
a         2009       01jan2009
a        2009       04jan2009
b         2007     01mar2007
b        2007     05mar2007
b       2008      01apr2008
b        2008      05apr2008
b        2009       01jan2009
b       2009       04jan2009
;
run;

proc sql;
   select id, year, min(tme) as min_time format=yymmdd10.
   from a
   group by 1,2
   order by 1,2
    ;
    quit;
二维码

扫码加我 拉你入群

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

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

2010-3-2 12:05:41
又学习了 谢谢bobguy
二维码

扫码加我 拉你入群

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

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

2010-3-2 12:14:46
清风的code修改如下 也可以 得到 正确结果。 只是我习惯这样写,顺便说下。

data c;
        set b;
        by id year ;
        format tme date9.;
        if first.year;
run
二维码

扫码加我 拉你入群

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

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

2010-3-2 15:45:33
都是很好的方法,谢谢楼上所有的高人了!
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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