全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
8266 15
2013-01-24
请教:我的数据是这样:包括变量stkcd  date   price,stkcd是股票代码,date是日期,price是股价。数据举例如下:
stkcd  date   price
000001  19990101 5
000001  19990102 6
...
000001 19990130  7
000001 19990201  8
000001 19990202  8
...
000001 19990228 7.5
000002 ...
现在需要判断,对于同一支股票,如果在一个月内只要有一天的股价小于等于五元,则输出test=1;否则test=0。
即生成表:
stkcd yearmonth test
000001  199901  1
000001  199902  0
...
这个应该如何分组进行判断呢?谢谢啦!




二维码

扫码加我 拉你入群

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

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

全部回复
2013-1-24 18:06:08
复制代码
二维码

扫码加我 拉你入群

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

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

2013-1-24 18:41:52
Imasasor 发表于 2013-1-24 18:06
data b ;
  set a;
month=put(date,yymmnn6.);
run;

***************************
本想一次在SQL搞定,没成功。
proc sql;
   select stkcd, date   as yearmonth format=yymmn6.  , min(price)<=5  as test
   from a
   group by  stkcd  date    /*format=yymmn6. */ ;  /*help me ,如果不生成新变量能实现?*/
quit;
二维码

扫码加我 拉你入群

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

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

2013-1-24 18:44:25
webgu 发表于 2013-1-24 18:41
data b ;
  set a;
month=put(date,yymmnn6.);
明白你的意思,但是不知道在group by的时候能不能利用它的format group,可能不可以,sas应该利用它存的真实值来group的
二维码

扫码加我 拉你入群

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

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

2013-1-24 18:51:55
webgu 发表于 2013-1-24 18:41
data b ;
  set a;
month=put(date,yymmnn6.);
yes, it works
复制代码
二维码

扫码加我 拉你入群

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

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

2013-1-24 18:52:25
Imasasor 发表于 2013-1-24 18:44
明白你的意思,但是不知道在group by的时候能不能利用它的format group,可能不可以,sas应该利用它存的真 ...
嗯,在data步class语用里可以按 formated var 分组统计。在proc sql里的确实不好弄。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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