如何根据ID获取起始月份

时间:2016-12-23 10:03:42

标签: sas

Id jan feb mar apr may jun jul
A  1   .  .     1  1    .  .
B .    .  1     .   .   .  .
A .   1   .    .    .   .  .
C .    .  .     1   .   .  .

我想知道哪个月份的价值不会丢失。 对于A,它是jan,对于B来说,它就是mar ans等。

1 个答案:

答案 0 :(得分:1)

我没有得到你的问题的部分,你说不要错过。这需要另一个函数合并来找到第一个非缺失的值。

.profile

您需要ARRAY和一些功能。

data id;
    input Id:$1. jan feb mar apr may jun jul;
    array a[*] jan-numeric-jul;
    target = coalesce(of a[*]);
    l=whichn(target,of a[*]);
    if l gt 0 then month = vname(a[l]);
    cards;
A  1   .  .     1  1    .  .
B .    .  99     .   .   .  .
A .   223   .    .    .   .  .
C .    .  .     -11   .   .  .
;;;;
    run;
proc print;
    run;

enter image description here