全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2301 8
2016-08-22
namevaluep
jj

1

1

jj

2

1

jj

3

1

mm

5

3

mm

4

3

mm

1

3

mm

2

3

mm

6

3

cc

2

7

cc

5

7

我想要的结果是
namevaluep
jj

1

jj

2

1

jj

3

mm

5

mm

4

3

mm

1

mm

2

mm

6

cc

2

cc

5

7

也就是说变量name的分组的第二行观测保留,其他的都清空!
二维码

扫码加我 拉你入群

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

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

全部回复
2016-8-22 16:19:41
data wanted;
  set test;
  by name value notsorted;
  if first.name then ord=0;
  ord+1;
  if ord ne 2 then call missing(p);
  drop ord;
run;

二维码

扫码加我 拉你入群

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

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

2016-8-22 17:12:56
wwang111 发表于 2016-8-22 16:19
data wanted;
  set test;
  by name value notsorted;
好神奇啊!但是不太理解!为什么ord变量会根据by分组从1、2、3.。。。。这么增加呢?
二维码

扫码加我 拉你入群

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

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

2016-8-22 17:38:57
每个name的第一条记录,ord的值设成了0;然后ord+1是一个sum statement,具体楼主可以看一下下面这个帖子6楼的附件:

https://bbs.pinggu.org/forum.php?mod=viewthread&tid=4750658&page=1#pid37998259
二维码

扫码加我 拉你入群

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

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

2016-8-23 13:07:56
wwang111 发表于 2016-8-22 17:38
每个name的第一条记录,ord的值设成了0;然后ord+1是一个sum statement,具体楼主可以看一下下面这个帖子6楼 ...
好的,但是我还有一个问题,既然是sum statement,那为什么ord有值的时候就不继续累加了?比如第四行为什么是1而不是4?我试过,即使不by分组,只要有值,它就不会覆盖!
二维码

扫码加我 拉你入群

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

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

2016-8-23 13:27:31
程序里不是只有ord+1这一个语句,;
到了第四行,if first.name=1的条件就符合了,ord就被重新赋值成了0;
然后,还是第四行,会执行ord+1,从而ord的值就变成了1;
到了第五行,不满足first.name=1,ord不会被重新赋值,而是第四行留下的1,然后执行ord+1,值就变成了2;
以此类推。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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