全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2762 10
2011-07-07
求教序数问题:
D这列是我想要的。 把每个省根据 C 列来给序列号,凡是一,就往上加, 但是遇到零就清零从头从一开始。 用SAS 怎么做? 谢谢。

  A
  
  B
  
  C
  
D
  广西
  
  

12/31/2004


  
  

1


  
  

1


  
  广西
  
  

1/1/2005


  
  

1


  
  

2


  
  广西
  
  

9/2/2005


  
  

1


  
  

3


  
  广西
  
  

1/3/2009


  
  

0


  
  

0


  
  广西
  
  

1/4/2010


  
  

1


  
  

1


  
  广西
  
  

1/5/2011


  
  

1


  
  

2


  
  湖北
  
  

9/2/2005


  
  

0


  
  

0


  
  湖北
  
  

1/3/2009


  
  

1


  
  

1


  
  湖北
  
  

2/4/2010


  
  

1


  
  

2


  
  湖北
  
  

4/5/2011


  
  

1


  
  

3


  
  山东
  
  

12/31/2004


  
  

0


  
  

0


  
  山东
  
  

1/1/2005


  
  

1


  
  

1


  
  山东
  
  

4/2/2005


  
  

1


  
  

2


  
  山东
  
  

9/3/2006


  
  

1


  
  

3


  
  山东
  
  

9/2/2007


  
  

1


  
  

4


  
  山东
  
  

1/3/2009


  
  

0


  
  

0


  
  山东
  
  

2/4/2010


  
  

1


  
  

1


  
  山东
  
  

4/5/2011


  
  

1


  
  

2


  
二维码

扫码加我 拉你入群

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

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

全部回复
2011-7-7 12:20:35
data b;
set a;
by a c;
if first.c then d=c;
else d+1;
run;
二维码

扫码加我 拉你入群

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

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

2011-7-7 12:40:13
set a;
by a b;
retain seq;
if first.a then seq=0;
seq=ifn(c=0,0,seq+1);
二维码

扫码加我 拉你入群

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

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

2011-7-7 12:45:40
@honghejing谢谢, 但是不行啊。
我原来就这么做, 但是C 列全是 1, 0,

ERROR: BY variables are not properly sorted on data set
二维码

扫码加我 拉你入群

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

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

2011-7-7 12:53:10
3# pobel
谢谢,还是不行, 同上的错误信息。
而且第一个不一定是0, 要是 1 的话就是1, 比如例子里面广西第一个就不是0。
二维码

扫码加我 拉你入群

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

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

2011-7-7 12:55:28
你要先sort by一下
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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