Hello,
I have one dataset that contains 1,000 observations and 50 variables - Data A.
I also have another dataset with only one observation and 30 variables - Data B.
The variables in Data B are parmeters that I want to add to all observations in Data A.
I tried to merge/set the two datasets but it only gives me first observation in A with the 1 observation in B and the other observations with missing value.
As You can see in the photo, Data A ends with variable P1000 and Data B starts with variable SM.
My question is, How do I dulplicate the one observation in B so all the observations in A will have it as a variable?
Thanks,
Matan.
To add one observation in B to all observations in A:
data want;
if _n_=1 then set B;
set A;
run;
To add one observation in B to all observations in A:
data want;
if _n_=1 then set B;
set A;
run;
Consider these two methods:
data a;
input var1 var2 var3;
cards;
1 2 3
4 5 6
7 8 9
;
run;
data b;
input var4 var5;
cards;
10 11
;
run;
data want1;
set a;
_x_ = 1;
set b point=_x_;
run;
proc sql;
create table want2 as
select * from a,b;
quit;
The point=method rereads dataset b in every iteration, and therefore overrides the problem caused by the automatic "set to missing" that happens at the start of a datastep iteration.
SQL will always build a cartesian product on its own.
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.