-1

我正在尝试使用这段代码将某些数据导入到我的 SAS 数据集中:

数据名称_And_More;

Infile 'C:\Users\Admin\Desktop\Torrent Downloads\SAS 9.1.3 Portable\Names_and_More.txt';
Input Name   &  $20. 
      Phone  :  $20.  
      Height &  $10.  
      Mixed  &  $10.;
run;

文件中的数据如下:

Roger Cody (908)782-1234 5ft. 10in. 50 1/8
Thomas Jefferson (315)848-8484 6ft. 1in. 23 1/2
Marco Polo (800)123-4567 5Ft. 6in. 40
Brian Watson (518)355-1766 5ft. 10in 89 3/4
Michael DeMarco (445)232-2233 6ft. 76 1/3

我一直在尝试学习 SAS,在阅读 Ron Cody 的书 Learning SAS by example 时,我发现要导入上述类型的数据,我们可以使用“&”信息修饰符。与冒号一样,与号表示使用提供的信息,但分隔符现在是两个或多个空格,而不仅仅是一个。(罗恩的话,不是我的话)。但是,在导入时,结果(数据集)如下:

                          Name            Phone      Height        Mixed

                  Roger Cody (908)782-    Thomas    Jefferson    Marco Polo

此外,有关更多详细信息,SAS 日志如下:

419个数据名称_And_More; 420 Infile 'C:\Users\Admin\Desktop\Torrent 下载\SAS 9.1.3 Portable\Names_and_More.txt';421 输入名称和 20 美元。422 电话:20 美元。423 身高和 10 美元。424 混合 & 10 美元。425;运行;

笔记:

infile 'C:\Users\Admin\Desktop\Torrent Downloads\SAS 9.1.3 Portable\Names_and_More.txt' 是:文件名=C:\Users\Admin\Desktop\Torrent Downloads\SAS 9.1.3 Portable\Names_and_More。 txt, RECFM=V,LRECL=256

笔记:

丢失的卡片。姓名=Brian Watson (518)35 电话=Michael Height=DeMarco (4 Mixed= ERROR =1 N =2 注意:从 infile 'C:\Users\Admin\Desktop\Torrent Downloads\SAS 9.1.3 中读取了 5 条记录Portable\Names_and_More.txt'。最小记录长度为 37。最大记录长度为 47。注意:当 INPUT 语句到达行尾时,SAS 转到新行。注意:数据集 WORK.NAMES_AND_MORE 有 1观察和 4 个变量。注意:使用的 DATA 语句(总处理时间):实时 0.17 秒 cpu 时间 0.14 秒

我正在寻求一些帮助。如果有人能解释到底发生了什么,我做错了什么以及如何纠正这个错误,那就太好了。

谢谢

4

1 回答 1

0

答案在 Ron Cody 书中的解释中。& 表示您需要两个空格来分隔变量;所以你需要在名称后有第二个空格(以及其他带有 & 的字段)。

错误的:

Roger Cody (908)782-1234 5ft. 10in. 50 1/8

正确的:

Roger Cody  (908)782-1234 5ft. 10in.  50 1/8
于 2013-08-25T12:21:18.393 回答