我正在准备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
在键入程序的某个地方我错了吗?我一次又一次地检查我是否正确复制了它。
如何修改此程序?
谢谢!
答案 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;