Duplicate row according to a variable

Accepted Solution Solved
Reply
Contributor
Posts: 36
Accepted Solution

Duplicate row according to a variable

I have a large data set like this :

NAME   MONEY   NB  NUMBER
John        300       1         4
Max         250       2         5
Alex         657       1         3
Matt        1520      2         2

 

For NB = 2, I want to divide NB by 2 , divide MONEY by NUMBER and also keeping observations for NB = 1. I mean how get this  :

NAME   MONEY   NB
John        300       1
Max         50         1

Max         50         1
Alex         657       1
Matt        760       1

Matt        760       1


Accepted Solutions
Solution
‎04-25-2017 09:34 AM
Super User
Posts: 7,866

Re: Duplicate row according to a variable

[ Edited ]
data want;
set have;
if nb = 2
then do;
  money = money / number;
  nb = nb / 2;
  output;
end;
output;
drop number;
run;
---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers

View solution in original post


All Replies
Solution
‎04-25-2017 09:34 AM
Super User
Posts: 7,866

Re: Duplicate row according to a variable

[ Edited ]
data want;
set have;
if nb = 2
then do;
  money = money / number;
  nb = nb / 2;
  output;
end;
output;
drop number;
run;
---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
PROC Star
Posts: 768

Re: Duplicate row according to a variable

What if NB = 3 or higher, is that possible?

Contributor
Posts: 36

Re: Duplicate row according to a variable

In my data set, NB is only equals to 1 or 2

Super User
Posts: 7,866

Re: Duplicate row according to a variable

You can replace the

nb = nb / 2;

in my code with

nb = 1;

as there can never be a different outcome.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 4 replies
  • 160 views
  • 4 likes
  • 3 in conversation