包含许多 proc sql 语句的 SAS 循环
SAS loop containing many proc sql statements
我在 SAS EG 工作,有一个程序可以从多个数据库中提取数据,进行一些分析,并输出包含一些新数据的摘要 table。我现在被告知我需要这样做几十次,并且非常努力地在 SAS 中使用内部 proc SQL 语句进行循环。
让我再次尝试更详细地总结一下。
当前代码:
获取员工人数、车队、职位并输出一份摘要 table 与他们类别中的其他人相比他们当月所做的各种事情(主要使用 proc SQL)。
我需要做的:
给定另一个 table,其中包含许多相同变量(员工编号、车队、职位)的列表,我需要为这些独特的员工信息中的每一个生成相同的摘要信息。
非常感谢任何帮助!对 SAS 还是很陌生(不像 SQL 那么多)所以描述性越强越好。
通常在 SAS 中,您会定义一个宏,以便能够使用不同的变量(或需要更改的代码的任何其他部分)重新运行多步过程。无论您要生成的代码是否包含 PROC SQL 步或 DATA 步或任何其他过程,都是如此。
替换代码中因引用宏变量而异的部分。使用这些宏变量作为参数将代码包装在宏定义中。然后为每组参数值调用宏。
例如,如果您只想输入一个变量名,您的宏定义可能如下所示:
%macro mymacro(var);
... use &VAR. in your analysis code to replace the hard coded variable name ...
%mend ;
然后可以多次调用
%mymacro(var1);
%mymacro(var2);
我在 SAS EG 工作,有一个程序可以从多个数据库中提取数据,进行一些分析,并输出包含一些新数据的摘要 table。我现在被告知我需要这样做几十次,并且非常努力地在 SAS 中使用内部 proc SQL 语句进行循环。
让我再次尝试更详细地总结一下。
当前代码:
获取员工人数、车队、职位并输出一份摘要 table 与他们类别中的其他人相比他们当月所做的各种事情(主要使用 proc SQL)。
我需要做的:
给定另一个 table,其中包含许多相同变量(员工编号、车队、职位)的列表,我需要为这些独特的员工信息中的每一个生成相同的摘要信息。
非常感谢任何帮助!对 SAS 还是很陌生(不像 SQL 那么多)所以描述性越强越好。
通常在 SAS 中,您会定义一个宏,以便能够使用不同的变量(或需要更改的代码的任何其他部分)重新运行多步过程。无论您要生成的代码是否包含 PROC SQL 步或 DATA 步或任何其他过程,都是如此。
替换代码中因引用宏变量而异的部分。使用这些宏变量作为参数将代码包装在宏定义中。然后为每组参数值调用宏。
例如,如果您只想输入一个变量名,您的宏定义可能如下所示:
%macro mymacro(var);
... use &VAR. in your analysis code to replace the hard coded variable name ...
%mend ;
然后可以多次调用
%mymacro(var1);
%mymacro(var2);