SAS中文论坛

标题: 求助,SAS问题,谢谢! [打印本页]

作者: shiyiming    时间: 2010-12-14 15:12
标题: 求助,SAS问题,谢谢!
有大量数据希望高手指导。
PC可能会有一万多个(1~10000)。
目的:希望把PC是一类的,按照类别中第一个GRADE把空值填上。
比如:PC是1的GRADE剩余空值,按304填上。
谢谢牛人!


PC        GRADE
1        304
1       
1       
1       
1       
1       
1       
1       
1       
1       
2        430
2       
2       
2       
2       
2       
2       
2       
2       
2       
3       
3       
3       
3       
3       
3       
3       
3       
4        200
4       
4       
4       
4       
4       
4       
4       
4       
4       
4       
4       
4
作者: shiyiming    时间: 2010-12-14 22:07
标题: Re: 求助,SAS问题,谢谢!
data work.a;
infile datalines missover;
input pc grade1;
datalines;
1 304
1
1
1
1
1
1
1
1
1
2 430
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
4 200
4
4
4
4
4
4
4
4
4
4
4
4
;
run;

data work.b;
set a;
by pc;
retain grade;
if first.pc then grade=grade1;
drop grade1;
run;

just for your information.
作者: shiyiming    时间: 2010-12-15 10:20
标题: Re: 求助,SAS问题,谢谢!
[size=150:1ikkz3q7]谢谢牛人,用你的程式,已经解决问题,只是不怎么懂原理,
retain grade;
if first.pc then grade=grade1

RETAIN的意思是什么呢?[/size:1ikkz3q7]
作者: shiyiming    时间: 2010-12-15 14:56
标题: Re: 求助,SAS问题,谢谢!
其实蛮简单的,retain最一般的用法就是将某个变量的值保留,一直到有改变他的值的句子,他才会改变。
就像这里,我只是在第一个PC的时候将他的值改变,所以下面的值都和第一条的值相同。
作者: shiyiming    时间: 2010-12-15 15:39
标题: Re: 求助,SAS问题,谢谢!
再次感谢。
不过你那句其实蛮简单的,让我这些初学者很困扰,我看的那些资料里都没你这个函数啊,我郁闷。




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