将以下数据导入sas时我做错了什么

时间:2013-08-25 09:59:14

标签: import sas

我正在尝试使用以下代码将某些数据导入我的SAS数据集:

Data Names_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的书“学习SAS”的例子中,我发现导入上面的数据类型,我们可以使用“&符号(&)”信息修饰符。 &符号与冒号一样,表示要使用提供的信息,但分隔符现在是两个或更多空格而不是一个空格。 (罗恩的话,不是我的)。但是,在导入时,结果(数据集)如下:

                          Name            Phone      Height        Mixed

                  Roger Cody (908)782-    Thomas    Jefferson    Marco Polo

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

  

419 Data Names_And_More;   420 Infile'C:\ Users \ Admin \ Desktop \ Torrent Downloads \ 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混合= ERROR = 1 N = 2   注意:从infile'C:\ Users \ Admin \ Desktop \ Torrent Downloads \ SAS 9.1.3中读取了5条记录         便携式\ Names_and_More.txt”。         最低记录长度为37。         最大记录长度为47。   注意:当INPUT语句超过行尾时,SAS转到新行。   注意:数据集WORK.NAMES_AND_MORE有1个观察值和4个变量。   注意:使用的DATA语句(总处理时间):         实时0.17秒         cpu时间0.14秒

我正在寻找这个帮助。如果有人能够解释究竟发生了什么,我做错了什么以及如何纠正这个错误,那就太好了。

由于

1 个答案:

答案 0 :(得分:0)

答案在Ron Cody的书中的解释中。 &安培;意味着您需要两个空间来分隔变量;所以你需要在名字后面加第二个空格(和其他字段用&)。

错:

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

右:

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