BookmarkSubscribeRSS Feed
chsprogramming
Calcite | Level 5

I have a dataset where I need to make sure that each like ID gets assigned the same Value. It's not so much that I need to select a specific value to repeat from all that are assigned to the like ID, but that I need all the like IDs to have the same Value. 

Data Have:

 Id   Value
101   656
101   756
101   805
101   752      
501   999
502   405
502   365

 Data Want:

 Id   Value   Selected
101   656     656
101   756     656
101   805     656
101   752     656   
501   999     999
502   405     999
502   365     999 

 

2 REPLIES 2
PaigeMiller
Diamond | Level 26
data want;
    set have;
    by id;
    retain selected;
    if first.id then selected=value;
run;
--
Paige Miller
antonbcristina
SAS Super FREQ

Suppose you had the chosen values in a dataset have2 (completely made up based on the values you're displaying):

ID  Selected
101 656
501 999
502 999

Then a PROC SQL left join will do the trick:

proc sql;
    select t1.id, t1.value, t2.selected
    from have as t1 left join have2 as t2
    on t1.id = t2.id;
quit;