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 Employee

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; 

 

sas-innovate-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

Register now!

Mastering the WHERE Clause in PROC SQL

SAS' Charu Shankar shares her PROC SQL expertise by showing you how to master the WHERE clause using real winter weather data.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 2 replies
  • 514 views
  • 1 like
  • 3 in conversation