SAS - 在数据步骤中输入所有变量,而不命名每个变量

时间:2018-04-01 14:12:59

标签: sas user-input

如何使用INPUT输入数据步骤中的所有变量/列但不命名每个变量?这可以通过命名每个变量来完成,例如:

DATA dataset;
    INFILE '/folders/myfolders/file.txt';
    INPUT variable1 variable2 variable3 variable4 $ variable5;
RUN;

但是,对于包含200多个变量的大型数据集来说,这非常繁琐。

1 个答案:

答案 0 :(得分:0)

原始问题暗示您已经拥有SAS数据集。在这种情况下,在设置数据集时会自动包含所有变量。

data copy ;
  set '/folders/myfolders/file.sas7bdat';
run;

或者只是在您想要进行的分析中引用它。

proc means data='/folders/myfolders/file.sas7bdat';
run;

如果您确实有一个TEXT文件并且想要将其读入SAS数据集,则可以使用PROC IMPORT来猜测文件中的内容。如果它有一个标题行,那么proc import将尝试将它们转换为有效的变量名。它还将尝试根据它在文本文件中看到的值来猜测如何定义变量。

proc import out=want datafile='/folders/myfolders/file.txt' dbm=dlm ;
  delimiter=',';
run;

或者,如果创建200个唯一变量名称太难的问题,您可以使用带有数字后缀的变量列表来节省大量输入。

DATA dataset;
  INFILE '/folders/myfolders/file.txt' dsd ;
  length var1-var200 $20 ;
  input var1-var200 ;
RUN;