Я новичок в SAS. Мне нужно сделать x- итерации для заполнения моего набора данных MYRS
.Рекурсивно добавить к таблице данных в SAS
Каждая итерация нуждается в РЕГИСТРИРУЙТЕСЬTABLE1
с (TABLE2
+ MYRS
) МИНУС записей, которые уже в MYRS
таблице.
Затем мне нужно обновить таблицу MYRS
с дополнительными совпадениями. Цель состоит в том, чтобы отслеживать цепочку писем.
MYRS
по существу является копией TABLE1
и содержит соответствующие записи. Какой-то хитрый. (упрощенная схема). Table1
Может иметь DUPS.
Например
TABLE1:
ID | EMAIL1 | EMAIL2 | EMAIL3 | EMAIL4|
1 | A | s | d | F
2 | g | F | j | L
3 | z | x | L | v
4 | z | x | L | v
2 | g | F | j | L
TABLE2:
EMAIL
A
MYRS (starts as empty dataset)
EMAIL1 | EMAIL2 | EMAIL3 | EMAIL4
Логика: TABLE1
имеет электронную почту, которая соответствует по электронной почте в TABLE2
. Поэтому эта запись должна появиться. Другие записи ничего не соответствуют в TABLE2
. Но так как Record1
и Record2
доля the same ALTERNATIVE email
F, Record2
также должны быть показаны. Но так как Record2
и поделитесь тем же самым альтернативным адресом электронной почты L, Record3
также должен быть показан. И вот четвёртое ...
proc sql;
SELECT TABLE1.id,
TABLE1.email1,
TABLE1.email2,
TABLE1.email3,
TABLE1.email4
FROM TABLE1
INNER JOIN (
SELECT EMAIL
FROM TABLE2
UNION
SELECT EMAIL1 AS EMAIL
FROM MYRS
UNION
SELECT EMAIL2 AS EMAIL
FROM MYRS
UNION
SELECT EMAIL3 AS EMAIL
FROM MYRS
UNION
SELECT EMAIL4 AS EMAIL
FROM MYRS
)
ON EMAIL=EMAIL1 OR EMAIL=EMAIL2 OR EMAIL=EMAIL3 OR EMAIL=EMAIL4
WHERE TABLE1.id NOT IN (
SELECT DISTINCT ID
FROM MYRS
)
quit;
Как я могу создать следующую логику:
- Wrap это в какой-то функции
- Перед выполнением SQL, подсчитывает количество записей в MYDS и сохранить кол
- Выполнить SQL и обновить MYDS
- графа количество записей в MYDS
- Если MYDS счетчик не изменится, остановить execut ион
- Else, Гот # 3
Я новичок в SAS (3 дня, чтобы быть точным) и пытаюсь поставить все вместе. (Я бы использовал вышеприведенную логику, если бы я сделал это на Java)
Возможно, вы могли бы написать макрос, чтобы сделать это так, как вы указали выше, но часть меня говорит, что если вы реструктурируете свои данные, у вас могут быть лучшие варианты. Можете ли вы опубликовать обработанный пример, мне нелегко визуализировать проблему. – Reeza
В зависимости от размера ваших данных хеш-таблицы могут быть хорошими кандидатами для решения этой проблемы. –