将未分类的数据从记事本文件(.txt)导入SaS

时间:2016-07-21 11:25:30

标签: import sas text-files

我有一个大文本文件,它包含3个表格。文件中的记录未排序,文件中的记录与以空格分隔的列名称一致。表格一直在重复,直到结束。我想将正确表格下的记事本文件中的数据导入SAS。我想从文本文件中读取记录和列名,并将它们放在正确的表中。我尝试了INFILE并且我成功地将数据导入SAS,但由于列未排序且表重复自身,因此将记录保存在SAS中的正确表下更加困难。我是SAS的初学者,非常感谢任何帮助。

以下是文本文件

中的数据示例
 ABCD - ABCD          ----     Table 1                                                                         

 Column1           xxxxxxxxxxxxxxxxxxx                     Column3 xxxxxxxxxxxx                                                 
 Column2          x                                        Column4 xx

  ABCD - ABCD          ----     Table 2                                                                       

 Column1           xxxxxxxxxxxxxxxxxxx                     Column3   xxxxxxxxxxx                                                
 Column2          x                                        Column4 xx

  ABCD - ABCD          ----     Table 3                                                                       

 Column1           xxxxxxxxxxxxxxxxxxx                     Column3   xxxxxxxxxxxxxxx                                                
 Column2          x                                        Column4 xx

  ABCD - ABCD          ----     Table 1                                                                         

 Column1           xxxxxxxxxxxxxxxxxxx                     Column3   xxxxxxxxxxxxxx                                                 
 Column2          x                                        Column4 xx

  ABCD - ABCD          ----     Table 2                                                                         

 Column1           xxxxxxxxxxxxxxxxxxx                     Column3   xxxxxxxxxxxxxxxxxx                                                 
 Column2          x                                        Column4 xx

  ABCD - ABCD          ----     Table 3                                                                         

 Column1           xxxxxxxxxxxxxxxxxxx                     Column3   xxxxxxxxxxxxxxxxxxxx                                               
 Column2          x                                        Column4 xx

1 个答案:

答案 0 :(得分:1)

通常,在阅读报告时,您需要使用逻辑来检测报告中的位置。您可能希望从标题行读取和保留值。通常可能包括报告日期,报告所针对的个人,或者在您的情况下,报告的哪一部分来自数据。

charT()

然后,您可以添加要排序和转置的步骤。

data step1 ;
  infile 'myfile.txt' truncover ;
  input @;
  * eliminate blank lines ;
  if _infile_ = ' ' then delete;
  * Read the TABLE name ;
  if substr(_infile_,23,6) = ' ---- ' then do;
    block+1;
    input @33 table_name $32.;
    retain table_name;
    delete;
  end;
  else do;
    * Read two values from each line ;
    input @2 varname $20. value $50. @;
    output;
    input @59 varname $20. value $50. ;
    output;
  end;
run;