我有一个大文本文件,它包含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
答案 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;