gpt4 book ai didi

sas - 获取 SAS 表中宏变量的值

转载 作者:行者123 更新时间:2023-12-04 18:20:07 24 4
gpt4 key购买 nike

我在 SAS 中有一组输入宏变量。它们是动态的,并根据用户在 sas 存储过程中的选择生成。

For example:There are 10 input values 1 to 10.
The name of the macro variable is VAR_. If a user selects 2,5,7 then 4 macro variables are created.
&VAR_0=3;
&VAR_=2;
&VAR_1=5;
&VAR_2=7;

后缀为 0 的第一个提供计数。接下来的 3 个提供值。

注意:如果用户只选择一个值,则只会创建一个宏变量。例如,如果用户选择 9,则 &var_=9;将被创建。不会有任何计数宏变量。我正在尝试使用这些变量创建一个 sas 表。

应该是这样的

OBS    VAR
-----------
1 2
2 5
3 7
-----------

这是我试过的。不确定这是否是处理它的正确方法。它没有给我最终的解决方案,但我至少可以在表中获取宏变量的名称。我怎样才能得到他们的值(value)?

data tbl1;
do I=1 to &var_0;
VAR=CAT('&VAR_',I-1);
OUTPUT;
END;
RUN;
PROC SQL;
CREATE TABLE TBL2 AS
SELECT I,
CASE WHEN VAR= '&VAR_0' THEN '&VAR_' ELSE VAR END AS VAR
from TBL1;
QUIT;

谢谢你的帮助。

周杰伦

最佳答案

SAS 已经帮助您将它们存储在一个表中,您只需要解析出您想要的那些。该表称为 SASHELP.VMACRO 或 DICTIONARY.MACROS

这是一个例子:

%let var=1;
%let var2=3;
%let var4=5;

proc sql;
create table want as
select * from sashelp.vmacro
where name like 'VAR%';
quit;

proc print data=want;
run;

关于sas - 获取 SAS 表中宏变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35582136/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com