Безусловно, самый простой способ сделать это - использовать PROC SQL и определить условие 1 = 1, которое всегда верно для каждого сравнения:
data first;
input ID value1 @@;
cards;
1 12 2 345 3 342
run;
data second;
input value2 ;
cards;
3823
run;
proc sql;
create table wanted as
select * from first
left join second
on 1 =1
;quit;
Редактировать: Насколько я знаю, не существует прямого способа объединения наборов данных по каждой строке, но вы можете сделать следующий трюк:
Добавить переменную Help:
data second_trick;
set second;
help=1;
run;
data first_trick;
set first;
help=1;
run;
Затем мы просто выполняем слияние статической переменной:
data wanted_trick;
merge first_trick(in=a) second_trick;
by help;
if a; /*Left join, just to be sure.*/
run;
теперь это работает, только если вы хотите добавить одно статическое значение. Не пытайтесь использовать его, ваш Второй набор имеет больше строк.
Подробнее о слияниях и объединениях см .: https://support.sas.com/resources/papers/proceedings/proceedings/sugi30/249-30.pdf