набора данных выглядит следующим образом:Эффективный способ выбрать уникальные записи в SAS
Code Type Rating
0001 NULL 1
0002 NULL 1
0003 NULL 1
0003 PA 1 3
0004 NULL 1
0004 PB 1 2
0005 AC 1 3
0005 NULL 6
0006 AC 1 2
Я хочу, чтобы выходной набор данные выглядит
Code Type Rating
0001 NULL 1
0002 NULL 1
0003 PA 1 4
0004 PB 1 3
0005 AC 1 9
0006 AC 1 2
Для каждого Code
, Type
имеет не более двух значений. Я хочу выбрать уникальный Code
, суммируя Rating
. Но проблема в том, что для Type
, если он имеет только одно значение, его значение передается на выходный набор данных. Если есть два значения (один должен быть NULL
), то он передает значение, равное NULL
, для вывода набора данных.
Общее количество наблюдений N>100,000,000
. Так есть ли какой-нибудь сложный способ достичь этого?
Сколько различных значений 'type' у вас есть? Являются ли данные отсортированными, как указано выше, или не отсортированы (по крайней мере, по «коду»)? Что «не сложно», мы сравниваем это с (то есть, что у вас есть сейчас и как долго это требуется)? – Joe
Несколько сотен типов. Данные сортируются по 'code', затем' type'. Я объединяю 'type' для каждого уникального' code'. Затем найдите нулевую подстроку. – Lovnlust
Если он уже отсортирован (т. Е. Вы не делаете вид только для этого), то решение для шага данных Keith предлагает, вероятно, самое быстрое. Если это не так, то, скорее всего, решение массива будет самым быстрым, если это всего лишь несколько сотен типов. – Joe