在SAS中导入多个文本文件并跳过每个文件中的第一行(标题)

时间:2016-01-13 17:40:36

标签: sas

例如,我有像这样的test1.txt,

One   Two   Three
1   2   3
4   5   6

像这样的Test2.txt,

One   Two   Three
7   8   9
10   11   12

像这样的Test3.txt,

One   Two   Three
13   14   15
16   17   18

将这些内容导入sas中的表并创建类似内容的最佳方法是什么,

One   Two   Three
1   2   3
4   5   6
7   8   9
10   11   12
13   14   15
16   17   18

这是我的原始代码,

data want;
   infile "text*.txt" delimiter="   " firstobs=2;
   input One Two Three;
run;

firstobs语句仅跳过第一个文件中的标题行。我可以通过编写重复代码来实现这一点,但这显然不是很好。我还尝试使用变量EOV来检测文件的启动,但我无法使其工作。最好的方法是什么?提前谢谢!

1 个答案:

答案 0 :(得分:2)

在INFILE语句中使用EOV选项。这是一种方式。

data want;
  infile "text*.txt" dsd dlm='09'X truncover eov=eov firstobs=2;
  input @;
  if eov then input;
  input One Two Three;
  eov=0;
run;

使用FIRSTOBS=2 infile选项跳过第一个文件的标题,然后使用条件输入跳过其他文件的标题。在测试EOV标志之前,您需要通过预读行确保EOV标志正确设置。您需要重置数据步骤底部的EOV标志。