DATA Step, Macro, Functions and more

iterative values

Accepted Solution Solved
Reply
Frequent Contributor
Frequent Contributor
Posts: 94
Accepted Solution

iterative values

Hello all,

I have an input dataset, an example of which looks like:

data have;

input var1;

cards;

4

45

100

101

145

200

201

256

345;

run;

I want to create another variable (say, Batch) based on the criteria: if var1=1 to 100 then Batch=1, var1=101 to 200 then Batch=2, etc.

For this dataset, I can do this using this code:

data out; set  have;

if var1<=100 then batch=1;

else if var1<=200 then batch=2;

else if var1<=300 then batch=3;

run;

But if the actual values of var1 get bigger (say 3040) that would involve writing too many else if's. Also, the values of var1 could go up or down, so will not know in advance how many else if statements I would need. Once I determine the maximum value of var1 (say, MaxVar1), please could you suggest how to calculate the variable Batch.

Many thanks.

VD


Accepted Solutions
Solution
‎03-19-2014 08:15 AM
Trusted Advisor
Posts: 1,931

Re: iterative values

Divide by 100, then round upwards to the next integer

batch=ceil(var1/100);

View solution in original post


All Replies
Solution
‎03-19-2014 08:15 AM
Trusted Advisor
Posts: 1,931

Re: iterative values

Divide by 100, then round upwards to the next integer

batch=ceil(var1/100);

Frequent Contributor
Frequent Contributor
Posts: 94

Re: iterative values

Posted in reply to PaigeMiller

Thank you!

🔒 This topic is solved and locked.

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

Discussion stats
  • 2 replies
  • 184 views
  • 0 likes
  • 2 in conversation