Вот пример моего набора данных:
data have;
input v1 v2 $;
cards;
2015 123
2015 5a2
2015 544
2015 546
2015 678
2015 989
2016 123
2016 123
2016 222
2016 434
2016 444
2016 586
2016 675
2016 970
2016 98
2017 123
2017 123
2017 345
2017 544
2017 544
2017 675
;;;;
run;
Моя цель состоит в том, чтобы найти частоту, с которой повторяющиеся значения встречаются в 2017 и / или 2015 и 2016 годах. Например, если '123' происходит nВ 2017 году я хочу посчитать каждое повторение в 2017 году, но хочу посчитать, сколько раз это произошло в 2015 или 2016 году один раз.Таким образом, в случае данных выборки ставка для «123» будет равна .5.Потому что это происходит дважды в 2017 году и, по крайней мере, один раз за два других года, и у нас есть 6 наблюдений за 2017 год.это не помогает мне при подсчете уровней v1.
proc sql;
select count(distinct v1) as variablewant
from have
group by v1
;
quit;
Спасибо.
Редактировать:
Мой желаемый результат будет следующим:
2017: .8333
Это связано с тем, что 5 из 6 значений в 2017 г. встречаются либо в 2017 г., либо в одном из двух предыдущих лет.