标题: 数据指针的问题 [打印本页] 作者: shiyiming 时间: 2005-5-12 15:07 标题: 数据指针的问题 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
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
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