SAS объединяет другую переменную, если она отсутствует (шаг proc sql) - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь объединить данные IPO SDC в Compustat по кодам cusip.SDC предлагает как cusip9 (с некоторыми пропусками), так и cusip6 (без пропусков), а Compustat только cusip9.Я подстроку Compustat, чтобы получить "свою" переменную cusip6 в Compustat.Тем не менее, я бы предпочел сначала объединиться с данным cusip9, и только в случае отсутствия в cusip9, а затем объединить на cusip6.Пока мой код является стандартным кодом слияния на шаге proc sql:

proc sql;
    create table sdc_comp
    as select   a.*, b.*
    from compustat as a left join sdc as b
    on a.cusip9 = b.cusip9
    order by ipodate, gvkey, fyear;
quit;

Есть предложения?Если шаг данных будет делать это лучше, нет проблем с этим.Заранее спасибо.

1 Ответ

0 голосов
/ 16 мая 2019

Попробуйте использовать функцию coalsece .Он вернет первое непропущенное значение (оно будет работать в вашем случае с числовыми значениями).Попробуйте получить значение cusip6, а затем попробуйте получить cusip9.Это будет выглядеть так: SELECT COALESCE(cusip6, cusip9);

...