SAS-保留正在处理的表的名称

SAS-保留正在处理的表的名称,sas,Sas,我正在读取许多表,希望知道正在处理的表的名称,以便将其保存到输出表中。是否有一个自动变量或某种标志会有所帮助?我确信这可以在读取CSV文件列表等时完成,但这些是数据集。比如: %let table_list=one two three; Data whatever; set &table_list; table_name = ?????; 您需要在SET语句上使用INDSNAME=选项。查一下细节 INDSNAME=变量 创建并命名一个变量,该变量存储从中读取当前观测值的SAS

我正在读取许多表,希望知道正在处理的表的名称,以便将其保存到输出表中。是否有一个自动变量或某种标志会有所帮助?我确信这可以在读取CSV文件列表等时完成,但这些是数据集。比如:

%let table_list=one two three;
Data whatever;
  set &table_list;
  table_name = ?????;

您需要在SET语句上使用INDSNAME=选项。查一下细节

INDSNAME=变量


创建并命名一个变量,该变量存储从中读取当前观测值的SAS数据集的名称。存储的名称可以是数据集名称或物理名称。物理名称是操作环境识别文件的名称

您需要在SET语句上使用INDSNAME=选项。查一下细节

INDSNAME=变量


创建并命名一个变量,该变量存储从中读取当前观测值的SAS数据集的名称。存储的名称可以是数据集名称或物理名称。物理名称是操作环境识别文件的名称

如果您刚刚在上一个proc或datastep中创建了数据集,则可以使用&SYSLAST自动宏变量检索其名称

如果要将其保存为下游数据集元数据的一部分,而不是将其存储在变量中,一个选项是为该数据集指定标签,例如

data input_ds;
  a=1;
  output;
run;

%put &SYSLAST;

data output_ds(label="created from &SYSLAST");
  set input_ds;
  b=1;
run;

%put &SYSLAST;
还可以使用proc数据集指定数据集标签:

/*Modify an existing label*/
proc datasets lib = work;
  modify output_ds(label="New label");
  run;
quit;

您可以使用attrc函数检索数据集标签。

如果您刚刚在以前的过程或数据步骤中创建了数据集,则可以使用&SYSLAST自动宏变量检索其名称

如果要将其保存为下游数据集元数据的一部分,而不是将其存储在变量中,一个选项是为该数据集指定标签,例如

data input_ds;
  a=1;
  output;
run;

%put &SYSLAST;

data output_ds(label="created from &SYSLAST");
  set input_ds;
  b=1;
run;

%put &SYSLAST;
还可以使用proc数据集指定数据集标签:

/*Modify an existing label*/
proc datasets lib = work;
  modify output_ds(label="New label");
  run;
quit;

您可以使用ATTR函数检索数据集标签。

可以找到指向文档的链接和示例。可以找到指向文档的链接和示例。