当字符值嵌入空格时修改列表输入

时间:2017-02-08 22:46:06

标签: input sas

我正在准备SAS BASE测试。在测试书第17章阅读自由格式数据中,有一个示例关于如何读取具有嵌入空格和非标准值的字符值,例如带逗号的数字。我对它进行了测试,其结果并不是本书所描述的。

data cityrank;
infile datalines;
input rank city & $12. pop86: comma.;
datalines;
1 NEW YORK 7,262,700
2 LOS ANGELES 3,259,340
3 CHICAGO 3,009,530
4 HOUSTON 1,728,910
5 PHILADELPHIA 1,642,900
6 DETROIT 1,086,220
7 DAN DIEGO 1,015,190
8 DALLAS 1,003,520
9 SAN ANTONIA 914,350
;

我得到的是如下所示,数据集有4个。

rank city          pop86
1    NEW YORK 7,2  2
3    CHICAGO 3,00  4
5    PHILADELPHIA  6
7    DAN DIEGO 1,  8

在键入程序的某个地方我错了吗?我一次又一次地检查我是否正确复制了它。

如何修改此程序?

谢谢!

1 个答案:

答案 0 :(得分:0)

我猜错了你没有复制粘贴这个错字,但是你输入了它。

因此,你(或书籍作者)又犯了一个错字:在城市名称之后有两个空格,而不是一个(或至少应该是)。这就是&所做的:它说“等待两个连续的分隔符”(允许忽略单个分隔符,因此New York被读入一个变量而不是分割)。

所以这是正确的:

data cityrank;
infile datalines;
input rank city & $12. pop86: comma.;
datalines;
1 NEW YORK  7,262,700
2 LOS ANGELES  3,259,340
3 CHICAGO  3,009,530
4 HOUSTON  1,728,910
5 PHILADELPHIA  1,642,900
6 DETROIT  1,086,220
7 SAN DIEGO  1,015,190
8 DALLAS  1,003,520
9 SAN ANTONIO  914,350
;
run;