Выборка SAS для возврата групп записей транзакций - PullRequest
0 голосов
/ 05 марта 2019

У меня большой набор данных, из которого я хочу выбрать набор идентификаторов даты / транзакции. Каждый идентификатор транзакции связан с несколькими строками в данных - скажем, 1-20 строк на идентификатор, и я хотел бы вернуть все эти записи в течениевыборка даты / идентификатора транзакции

Из-за размера данных я бы предпочел избегать выборки идентификатора транзакции и повторного соединения, чтобы получить все записи

1 Ответ

0 голосов
/ 05 марта 2019

Предполагая, что ваш набор данных уже отсортирован (или проиндексирован) по идентификатору + дате, можно выполнить некоторую простую случайную выборку этого типа за 1 шаг данных, например, используя цикл DOW:

data want;
  call streaminit(0);
  sample_rate = 0.05;
  flag = rand('uniform') < sample_rate;
  do until(last.date);
    set have;
    by ID date;
    if flag then output;
  end;
  drop flag sample_rate;
run;
...