如何将列名称拉入SAS中的数据

时间:2014-11-19 13:33:57

标签: sas

将日期作为关于 VOL 的变量名称的表格,我想创建一个新变量为 FLAG ,即IF变量有1拉变量的日期输入 FLAG

  VOL   31-Dec-10   31-Dec-11   31-Dec-12   31-Dec-13   31-Dec-14   31-Dec-15
109001  0   0   0   0   1   0
109002  0   0   1   0   0   0
109003  0   0   1   0   0   0
109004  0   0   0   1   0   0
109006  0   0   1   0   0   1

输出

 VOL    31-Dec-10   31-Dec-11   31-Dec-12   31-Dec-13   31-Dec-14   31-Dec-15   FLAG
109001  0   0   0   0   1   0   31-Dec-14
109002  0   0   1   0   0   0   31-Dec-12
109003  0   0   1   0   0   0   31-Dec-12
109004  0   0   0   1   0   0   31-Dec-13
109006  0   0   1   0   0   1   31-Dec-15

1 个答案:

答案 0 :(得分:4)

您希望使用vlabel()函数,因为这些列标题不符合标准变量名称要求,我假设它们是标签。下面是放入数据步骤的示例代码,但您必须知道数组声明的实际变量名称,并用它们替换date1--date99

array mydates (*) date1--date99;
do over mydates;
    if mydates = 1 then flag = vlabel(mydates);
end;

编写此循环的方式,它将保留最右侧出现1的日期,这与您在19006行中的示例一致。

另见vname()