Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用宏变量在SAS中创建列_Sas_Sas Macro - Fatal编程技术网

使用宏变量在SAS中创建列

使用宏变量在SAS中创建列,sas,sas-macro,Sas,Sas Macro,我正在尝试使用SAS中宏变量的字符串值创建列。 我有一个名为want7的数据集,它有一个名为“ID”的列。我想创建一个名为want8的新数据集,其中包含一个名为“ID1”的新列,方法是将该列动态链接到&string1(因为该列的名称链接到&string1),但该列的值应等于want7中“ID”列的值。我该怎么做?提前谢谢。我只是复制和粘贴了我能写的东西,因为我对SAS比较陌生 %let string1 = ID1; data want8; set want7; /*Something

我正在尝试使用SAS中宏变量的字符串值创建列。 我有一个名为want7的数据集,它有一个名为“ID”的列。我想创建一个名为want8的新数据集,其中包含一个名为“ID1”的新列,方法是将该列动态链接到&string1(因为该列的名称链接到&string1),但该列的值应等于want7中“ID”列的值。我该怎么做?提前谢谢。我只是复制和粘贴了我能写的东西,因为我对SAS比较陌生

 %let string1 = ID1;
 
 data want8; set want7;
 /*Something like &string1 = ID*
 run;

以sashelp.class为例(因为它默认存在)。根据需要替换:

 %let string1 = ID1;
 
 data want8; 
    set sashelp.class;
        &string1 = age ;
 run;

这将重新读取数据集。如果您只想重命名,请查看数据集选项rename=。请参阅SAS文档:

注意:所有SAS宏变量值均为字符(即文本)
“宏变量是使您能够通过符号替换动态修改SAS程序中文本的工具。您可以将大量或少量文本分配给宏变量,然后,您可以通过引用包含该文本的变量来使用该文本。“