sas - отставание по идентификатору аккаунта?

Не уверен, что мне нужно использовать отставание для этого. Но вот что я хочу сделать.

Вот какие у меня есть данные...

acct    sort_order        type
111111     1            standard
111111     1            standard
111111     2            non-standard
111111     3            other
111111     3            other
222222     2            non-standard
222222     3            other
222222     3            other

Это то, чем я хочу закончить...

acct     sort_order  type           want
111111       1     standard       standard
111111       1     standard       standard
111111       2     non-standard   standard
111111       3     other          standard
111111       3     other          standard
222222       2     non-standard   non-standard
222222       3     other          non-standard
222222       3     other          non-standard

У меня есть набор данных, отсортированный по acct и sort_order. Для каждого счета я хочу взять первый тип (на основе sort_order) и скопировать его в каждую строку этого счета. Например, счет 111111 имеет «стандартный» в качестве первого типа. Я хочу, чтобы каждое наблюдение для счета 111111 имело «стандартный» тип.

Я попытался сделать следующее с задержкой, но это не совсем работает...

data want;
set have;
by acct;
want = lag(type);
if first.acct then want = type;
run;

person user2941280    schedule 14.05.2015    source источник


Ответы (1)


Вы можете использовать оператор сохранения, чтобы скопировать каждое значение в следующее наблюдение.

Data want;
    set have;
    by accnt;
    retain want;
    if first.accnt then want = type;
run;
person KnowYourOnion    schedule 14.05.2015