## Arithmetic operations in sas

Solved
Occasional Contributor
Posts: 8

# Arithmetic operations in sas

Hi everyone.

I have a data set and I attached it to my message.  You can see it below.

I want to calculate bolt_volume. It looks simple but I couldn't get correct results. The formula has already written in excel sheet.

bolt_volume[row2] = ( bolt_area[row1] + bolt_area[row2] ) / 2 * bolt_len[row2]

bolt_volume[row3] = ( bolt_area[row2] + bolt_area[row3] ) / 2 * bolt_len[row3]

...........

 tree_no bolt_no bolt_len bolt_area bolt_volume 1 1.235344635 1 1 2 0.89358336 2.128927995 1 2 2 0.821784859 1.715368219 2 0.346877809 2 1 2 0.276875719 0.623753528 2 2 2 0.226900035 0.503775754 3 0.294638715 3 1 2 0.193085235 0.48772395 3 2 2 0.185057629 0.378142864

Accepted Solutions
Solution
‎05-27-2014 05:34 PM
PROC Star
Posts: 7,632

## Re: Arithmetic operations in sas

Here is one way:

data want;

set have;

by tree_no;

bolt_volume=ifn(first.tree_no,.,lag(bolt_area)+bolt_area) / 2 * bolt_len;

run;

All Replies
Posts: 1,258

## Re: Arithmetic operations in sas

Hi,

This should work for the desired output.

Thanks,

Naeem

data want;

set have;

bolt_volume=(bolt_area+lag(bolt_area))/2*bolt_len;

run;

Solution
‎05-27-2014 05:34 PM
PROC Star
Posts: 7,632

## Re: Arithmetic operations in sas

Here is one way:

data want;

set have;

by tree_no;

bolt_volume=ifn(first.tree_no,.,lag(bolt_area)+bolt_area) / 2 * bolt_len;

run;

Occasional Contributor
Posts: 8

Thanks

PROC Star
Posts: 7,632

## Re: Arithmetic operations in sas

Just be careful with Naeem's code as it will give you non-missing, and wrong values, for the 1st record of the 2nd thru Nth by groups.

Occasional Contributor
Posts: 8

## Re: Arithmetic operations in sas

My original data set has more than 2000 observations. After I saw your message, I checked your codes and Nadeem's codes for my data set. But I couldn't see wrong values 1st record of the 2nd through Nth by groups.

PROC Star
Posts: 7,632

## Re: Arithmetic operations in sas

I stand corrected!  I hadn't noticed that bolt_len was always missing for your first record within an id.  If that is the case in all situations, then Naeem's code will provide the correct result.

Posts: 1,258

## Re: Arithmetic operations in sas

Thanks Arthur - Yes, if first id is not missing then your suggested solution is a definite choice.

Regards,

Naeem

Occasional Contributor
Posts: 8

## Re: Arithmetic operations in sas

Ok. I see now. That's tender spot.

Thanks Arthur.

New Contributor
Posts: 3

## Re: Arithmetic operations in sas

[ Edited ]

An operator in SAS is a symbol which is used in a mathematical, logical or comparison expression.

Example Arithmetic Operators.

DATA MYDATA1;
input @1 COL1 4.2 @7 COL2 3.1;
Sub_result = COL1-COL2;
Mult_result = COL1*COL2;
Div_result = COL1/COL2;
Expo_result = COL1**COL2;
datalines;
11.21 5.3
3.11 11
;
PROC PRINT DATA=MYDATA1;
RUN;

On running the above code, we get the following output.

☑ This topic is solved.