BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
John4
Obsidian | Level 7

I have a large data set like this :

NAME  MONEY  NB  NUMBER    CLASS

John      300        1         4           ab_4_ab_1
Max       250        2         5           be_2_be_1
Matt      1520       2          2          da_3_da_2

I use this code :

data want;
set have;
if nb = 2
then do;
  money = money / number;
  nb = nb / 2;
  output;
end;
output;
drop number;
run;

to get this data :

 

NAME    MONEY   NB     CLASS

John       300         1       ab_4_ab_1
Max         50          1       be_2_be_1
Max         50          1       be_2_be_1
Matt        760        1       da_3_da_2
Matt        760        1       da_3_da_2

 

I want to assign to the first duplicate observation the first four character of CLASS and the last four character of CLASS for the second duplicate observation. I mean how get  this :

NAME    MONEY   NB   CLASS

John       300         1      ab_4_ab_1
Max         50          1       be_2
Max         50          1       be_1
Matt        760        1       da_3
Matt        760        1       da_2

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
PGStats
Opal | Level 21
data want;
set have;
if nb = 2 then do;
  money = money / number;
  nb = nb / 2;
  c = class;
  class = substr(c,1,4);
  output;
  class = substr(c,6,4);
  output;
  end;
else output;
drop number c;
run;
PG

View solution in original post

1 REPLY 1
PGStats
Opal | Level 21
data want;
set have;
if nb = 2 then do;
  money = money / number;
  nb = nb / 2;
  c = class;
  class = substr(c,1,4);
  output;
  class = substr(c,6,4);
  output;
  end;
else output;
drop number c;
run;
PG
How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 1 reply
  • 732 views
  • 1 like
  • 2 in conversation