Estou tentando sinalizar observações com o mesmo ID e Data, mas com resultados diferentes. Nem todas as observações com o mesmo ID e Data terão um resultado diferente, mas uma grande fração terá. Já criei uma variável de sinalizador para as observações com o mesmo ID e Data, mas estou com problemas para criar o sinalizador para resultados diferentes.
Aqui estão alguns dados de exemplo.
data test;
input ID Dt :mmddyy10. result;
format dt mmddyy10.;
datalines;
1 4-27-24 1
1 4-27-24 1
1 4-30-24 2
1 4-30-24 2
2 5-5-24 1
2 5-5-24 2
3 6-6-24 1
3 6-6-24 1
4 7-7-24 1
4 7-7-24 2
4 7-17-24 2
4 7-17-24 2
;
run;
Agradeço antecipadamente!!
Você pode usar o processamento por grupo e a função lag para conseguir isso. Verificaremos se é a última observação no grupo de
id dt
e garantiremos que haja mais de um valor deid dt
, então compararemos o valor anterior deresult
com o valor atual. Se for o mesmo, retornará 0. Se não for, retornará 1. Devido a algumas peculiaridades específicas sobre como a função lag funciona, criaremos o lag primeiro e então o definiremos como ausente toda vez que chegarmos ao início de um novo grupo.