SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 567|回复: 0
打印 上一主题 下一主题

数据指针的问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2005-5-12 15:07:04 | 只看该作者

数据指针的问题

SAS V8基础教程 中的一道例题。
一组分层数据如下:
H 321 S. MAIN ST
P MARY E 21 F
P WILLIAM 23 M
P SUSAN K 3 F
H 324 S. MAIN ST
P THOMAS H 79 M
P WALTERS S 46 M
P ALICE A 42 F
P MARY e 21 F
P MARYANN A 20 F
P JOHN S 16 M
H 325A S. MAIN ST
P JAMES L 34 M
P LIZA A 31 F
P MARGO K 27 F

H 开头,表示地址,P 开头表示居住在上面那个地址下的人的信息。现在要读入这个数据到people数据集,变量为 Address,Name,Age,Gender.
用datalines语句读入数据,结果正常,程序如下:
××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
filename DST 'E:\Book\SAS\SAS V8基础教程 (汪嘉冈)\Dst';

data People;
infile datalines;
retain Address;
input type $1. @;
if type='H' then input @3 Address $20.;
if type='P' ;
input @3 Name $10. @13 Age 3. @16 Gender $1.;

datalines;
H 321 S. MAIN ST
P MARY E 21 F
P WILLIAM 23 M
P SUSAN K 3 F
H 324 S. MAIN ST
P THOMAS H 79 M
P WALTERS S 46 M
P ALICE A 42 F
P MARY e 21 F
P MARYANN A 20 F
P JOHN S 16 M
H 325A S. MAIN ST
P JAMES L 34 M
P LIZA A 31 F
P MARGO K 27 F
;
run;

proc print;
run;
××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
输出结果:
The SAS System 14:50 Tuesday, May 11, 2005 43

Obs Address Name Age Gender

1 321 S. MAIN ST MARY E 21 F
2 321 S. MAIN ST WILLIAM 23 M
3 321 S. MAIN ST SUSAN K 3 F
4 324 S. MAIN ST THOMAS H 79 M
5 324 S. MAIN ST WALTERS S 46 M
6 324 S. MAIN ST ALICE A 42 F
7 324 S. MAIN ST MARY e 21 F
8 324 S. MAIN ST MARYANN A 20 F
9 324 S. MAIN ST JOHN S 16 M
10 325A S. MAIN ST JAMES L 34 M
11 325A S. MAIN ST LIZA A 31 F
12 325A S. MAIN ST MARGO K 27 F


用读入外部数据的方法,将数据写在census.dat的外部文件中,程序如下:
filename DST 'E:\Book\SAS\SAS V8基础教程 (汪嘉冈)\Dst';

data People(drop=type);
infile DST(census);
retain Address;
input type $1. @;
if type='H' then input @3 Address $20.;
if type='P' ;
input @3 Name $10. @13 Age 3. @16 Gender $1.;
run;

proc print;
run;

奇怪的问题是 input type后面的指针@符号不起作用了。结果变成了:

The SAS System 14:50 Tuesday, May 11, 2005 44

Obs Address Name Age Gender

1 P MARY E 21 F WILLIAM 23 M
2 P MARY E 21 F SUSAN K 3 F
3 P THOMAS H 79 M WALTERS S 46 M
4 P THOMAS H 79 M ALICE A 42 F
5 P THOMAS H 79 M MARY e 21 F
6 P THOMAS H 79 M MARYANN A 20 F
7 P THOMAS H 79 M JOHN S 16 M
8 P JAMES L 34 M LIZA A 31 F
9 P JAMES L 34 M MARGO K 27 F

实在没有想明白原因,大家都有什么高见?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-9 01:06 , Processed in 0.067352 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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