SAS中文论坛

标题: 根据要求对变量赋值 [打印本页]

作者: shiyiming    时间: 2011-6-30 10:41
标题: 根据要求对变量赋值
现有数据集X,中有两个变量 M N,形式如下:
M  N
1   A
1     
1      
2      
2   B
2     
3   
3
3   C
现要求当M值相同时,N的值就都附上已存在的那个值,即:
M  N
1   A
1   A
1   A
2   B
2   B
2   B
3   C
3   C
3   C
请教各位大侠应该如何编程?
作者: shiyiming    时间: 2011-6-30 15:38
标题: Re: 根据要求对变量赋值
[code:3akik8dk]data a;
input m n $;
cards;
1 A
1 .
1 .
2 .
2 B
2 .
3 .
3 .
3 C
;
run;
/*method I*/
proc sort data=a out=b;
by m descending n;
run;
data b2(drop=n rename=(nn=n));
retain m nn;
  set b;
  by m descending n;
  if first.m then nn=n;
run;
/*method II*/
proc sql;
create table b3(drop=nn) as
  select *,max(nn) as n
    from a(rename=(n=nn))
   group by m;
run;[/code:3akik8dk]




欢迎光临 SAS中文论坛 (http://mysas.net/forum/) Powered by Discuz! X3.2