SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 526|回复: 4
打印 上一主题 下一主题

求助,SAS问题,谢谢!

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2010-12-14 15:12:59 | 只看该作者

求助,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
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2010-12-14 22:07:02 | 只看该作者

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.
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2010-12-15 10:20:29 | 只看该作者

Re: 求助,SAS问题,谢谢!

[size=150:1ikkz3q7]谢谢牛人,用你的程式,已经解决问题,只是不怎么懂原理,
retain grade;
if first.pc then grade=grade1

RETAIN的意思是什么呢?[/size:1ikkz3q7]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2010-12-15 14:56:41 | 只看该作者

Re: 求助,SAS问题,谢谢!

其实蛮简单的,retain最一般的用法就是将某个变量的值保留,一直到有改变他的值的句子,他才会改变。
就像这里,我只是在第一个PC的时候将他的值改变,所以下面的值都和第一条的值相同。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2010-12-15 15:39:32 | 只看该作者

Re: 求助,SAS问题,谢谢!

再次感谢。
不过你那句其实蛮简单的,让我这些初学者很困扰,我看的那些资料里都没你这个函数啊,我郁闷。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-6-13 19:32 , Processed in 0.102748 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表