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; 

 

sas-innovate-white.png

Our biggest data and AI event of the year.

Don’t miss the livestream kicking off May 7. It’s free. It’s easy. And it’s the best seat in the house.

Join us virtually with our complimentary SAS Innovate Digital Pass. Watch live or on-demand in multiple languages, with translations available to help you get the most out of every session.

 

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
  • 826 views
  • 1 like
  • 3 in conversation