如何在SAS中的另一个变量下调用名称作为字符串的变量?

use*_*996 3 sas sas-macro

我有一个变量列出了我需要的信息存储的变量名称.此变量将所有变量名称存储为字符串.我正在尝试创建另一个变量,该变量只包含变量行中的任何变量,该变量的名称存储在第一个变量下.例如,

var_names     var_a     var_b     new_variable    
  var_a         7         11          7
  var_a         2         9           2
  var_b         3         6           6
  var_a         6         9           6
Run Code Online (Sandbox Code Playgroud)

上面的var_names有变量名,我正在尝试创建new_variable.有任何想法吗?提前致谢.

到目前为止,我一直在努力寻找一个宏解决方案,但我无法让新变量实际上等于字段,而不仅仅是它应该调用的变量的名称.

我相信这个问题的原因是我不知道如何制作一个由另一个变量定义的宏.即%let mac = var_names,然后new_variable =&varnames

JDB*_*JDB 5

您可以使用该VVALUEX功能,如下所示:

DATA Work.Vars;

    INPUT   VarToUse    $
            VarA
            VarB
            VarC
            ;

DATALINES;
VarA 1 2 3
VarB 1 2 3
VarC 1 2 3
;;;;
RUN;

DATA Work.SelectedVars;
    SET Work.Vars;

    Var = VVALUEX( VarToUse );

    KEEP    Var;

RUN;
Run Code Online (Sandbox Code Playgroud)

返回:

Var
1
2
3