## iterative values

Solved
Frequent Contributor
Posts: 94

# 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
Posts: 2,999

## Re: iterative values

Divide by 100, then round upwards to the next integer

batch=ceil(var1/100);

--
Paige Miller

All Replies
Solution
‎03-19-2014 08:15 AM
Posts: 2,999

## Re: iterative values

Divide by 100, then round upwards to the next integer

batch=ceil(var1/100);

--
Paige Miller
Frequent Contributor
Posts: 94