2016-05-04 3 views
0

Я ищу, чтобы присоединиться к этим двум таблицам, заказав ptid и tx_code. Какой идеальный способ присоединиться, чтобы каждое наблюдение в dat2 возвращалось с повторной информацией из dat1?Односторонние сливаются с одинаковыми именами столбцов в proc sql

data baseline; 
input ptid age gender $ stat stat_date creat tx_code datnum$; 
cards; 
123 40 M A 02/15/2004 1.2 3 1 
456 29 F A 06/05/2009 1.5 2 1 
789 53 M D 01/10/2007 2.0 1 1 
; 
run; 

data followup; 
input ptid tx_code stat stat_date wgt hgt organ datnum $; 
cards; 
123 3 A 02/15/2004 60 150 ki 2 
123 3 A 10/05/2004 75 150 ki 2 
456 2 A 06/05/2009 95 173 SKP 2 
456 2 A 12/30/2009 95 173 SKP 2 
456 2 A 05/05/2010 93 173 SKP 2 
456 2 A 10/20/2010 85 173 SKP 2 
456 2 D 11/10/2010 . 173 SKP 2 
789 1 A 01/10/2007 65 180 pta 2 
789 1 A 06/25/2007 60 180 pta 2 
789 1 L 06/25/2008 . . pta 2 
; 
run; 
+0

Вам нужно будет переименовать одну из этих переменных STAT_DATE, которые вы хотите сохранить. Также почему одна дата, а другая строка? – Tom

+0

Это была только опечатка. – Douce

ответ

1

Соединитесь с использованием proc sql. Если вам нужны только отдельные наблюдения, используйте «select different» вместо «select»

proc sql; 
    create table resultant_table as select 
     a.*, b.wgt, b.hgt, b.organ, b.stat as stat2, b.stat_date as stat_date2 
     from baseline as a 
     left join followup as b 
     on a.ptid = b.ptid and a.tx_code = input(b.tx_code, 8.); 
quit; 
+0

Не указывайте таблицу результатов 'join'. это сбивает с толку. – wildplasser

+0

@superfluous, как могут возвращаться каждый stat_date и stat из t2, учитывая, что даты разных в общении? Я попробовал объединить, но он только фиксирует 1-ю дату. – Douce

+0

Вам просто нужно включить их в список переменных, которые вы хотите включить в результирующую таблицу, - ознакомьтесь с редактированием, которое я только что сделал, и дайте мне знать, если это ответит на ваш вопрос. – superfluous

Смежные вопросы