作者tew (咖啡王子)
站内Statistics
标题Re: [问题]SAS类别变项的累加次数
时间Sat Mar 13 01:32:22 2010
※ 引述《wlsherica (Mon_tresor)》之铭言:
: ※ 引述《anyoilk (黑鼻头)》之铭言:
: : 现在我想把资料中的OWN变项(类别)内容笔数相加,变为下面:
: : ID own NO
: : 甲 1 1
: : 甲 1 2
: : 甲 2 1
: : 乙 1 1
: : 乙 2 1
: : 丙 1 1
: : 丙 1 2
: : 丙 2 1
: : 丙 2 2
: : 而我是试过下面的语法
: : data B;
: : set A;
: : by id;
: : if first.id then NO=0;
: : NO+own;
: : run;
: : 但跑出来,却变成
: : ID own NO
: : 甲 1 1
: : 甲 1 2
: : 甲 2 4
: : 乙 1 1
: : 乙 2 2
: : 丙 1 1
: : 丙 1 2
: : 丙 2 4
: : 丙 2 6
: : 我想破头了,但还是卡住,请各位救救我,谢谢。
: 因为您提供的程式会一直累加, 试试看下面的语法:
: proc sort data=a; /*原始档名称a*/
: by ID own;
: data b;
: set a;
: by ID own;
: if first.own=1 then no=0;
: no+1;
: output;
: if last.own;
: run;
: proc print;run;
假设资料顺序一开始就是对的
则在读进资料以後
以下的语法就可以满足你想要的
data a;
set a;
retain no 0;
no=no+1;
if id^=lag(id) then no=1;
if own^=lag(own) then no=1;
run;
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.44.204.168
1F:推 anyoilk:感谢t大,这个方法也成功了 03/13 13:58