SAS let语句:是否引用单元格值?

SAS let语句:是否引用单元格值?,sas,let,Sas,Let,在SAS中,是否可以将%let语句引用到数据库中的值 例如,%let n=50中my n的值取决于在我的一个数据库中计算的某个值,例如,第一行加第一列。由于该值在我的循环中被修改了100次,所以我不想手动输入该值 有几种方法可以做到这一点。这里有两个: proc sql; select a+b into :n from your_table where some_condition; quit; 这将使用变量a和b的总和填充宏变量&n。您指定的条件应仅适用于表中的一行 另一种方法: da

在SAS中,是否可以将
%let
语句引用到数据库中的值


例如,
%let n=50
中my n的值取决于在我的一个数据库中计算的某个值,例如,第一行加第一列。由于该值在我的循环中被修改了100次,所以我不想手动输入该值

有几种方法可以做到这一点。这里有两个:

proc sql;
 select a+b into :n
 from your_table
 where some_condition;
quit;
这将使用变量
a
b
的总和填充宏变量
&n
。您指定的条件应仅适用于表中的一行

另一种方法:

data tmp;
 set your_table;
 if _n_=1 then do;
  call symputn('n',a+b);
 end;
run;

有几种方法可以做到这一点。这里有两个:

proc sql;
 select a+b into :n
 from your_table
 where some_condition;
quit;
这将使用变量
a
b
的总和填充宏变量
&n
。您指定的条件应仅适用于表中的一行

另一种方法:

data tmp;
 set your_table;
 if _n_=1 then do;
  call symputn('n',a+b);
 end;
run;

啊,太好了!我对命令symputn和symput做了一些额外的阅读。事实上,我使用的是symput而不是symputn-SAS在使用symputn时不断给我一条错误消息。不管怎样,一切正常!再次感谢。啊,太好了!我对命令symputn和symput做了一些额外的阅读。事实上,我使用的是symput而不是symputn-SAS在使用symputn时不断给我一条错误消息。不管怎样,一切正常!再次感谢。