全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2472 7
2014-10-28
数据:
obs no.idtypevar

1

1

1

0

2

1

1

0

3

1

1

1

4

1

2

1

5

1

2

1

6

1

1

1

7

1

1

1

8

1

1

1

9

2

1

0

         10

2

1

1

         11

2

2

1

         12

2

2

1

         13

2

2

1


以'id'为一个群组,要建一个dummy variable 'var' 。每个id的第一个var的值永远是0。而当type的数值一改变,var会从0变成1,直到这个group结束。而且,type数值改变的前一个obs的var也得变成1。比如说,obs 3和obs 10的var是1。求大神们写下SAS code!急用!非常感谢!


二维码

扫码加我 拉你入群

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

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

全部回复
2014-10-28 16:34:40
data var;
  set test;
  retain var;
  type1=lag(type);
  if id ne lag(id) then var=0;
  else if type ne type1 then var=1;
  drop type1;
run;

proc sql noprint;
select min(obs)-1 into: obs separated by ','
from var
where var=1
group by id;
quit;

data wanted;
set var;
if obs in (&obs) then var=1;
run;
二维码

扫码加我 拉你入群

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

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

2014-10-28 17:28:14
楼主你好,看楼主的数据,貌似id是排过序的? 请试试如下代码:
复制代码
二维码

扫码加我 拉你入群

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

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

2014-10-28 23:08:16
wwang111 发表于 2014-10-28 16:34
data var;
  set test;
  retain var;
感谢!感谢!感谢!
二维码

扫码加我 拉你入群

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

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

2014-10-28 23:12:20
sniperhgy 发表于 2014-10-28 17:28
楼主你好,看楼主的数据,貌似id是排过序的? 请试试如下代码:
感谢大神回复!太感谢了!
二维码

扫码加我 拉你入群

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

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

2014-10-29 10:01:50
h52101019 发表于 2014-10-28 23:12
感谢大神回复!太感谢了!
楼主不用客气,欢迎一起讨论问题。o(∩_∩)o
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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