Solved
Contributor
Posts: 27

# how to calculate a mean per semester

Hi,

I have the following problem:

I would like to calculate the mean per period of the following table :

I would like to get a table like this :

Accepted Solutions
Solution
‎11-13-2017 07:59 AM
Posts: 1,831

## Re: how to calculate a mean per semester

You can create the date_semester variable and calculate mean by it:

``````data temp;
set have;
length semstr \$7;
mon = put(date,yymmn6.);
if  '200507' le mon le '200512' then semstr = '2005_s2'; else
if  '200601' le mon le '200606' then semstr = '2006_s1'; else
if  '200606' le mon le '200612' then semstr = '2006_s2';
run;

proc means data=temp;
class semstr;
var    score_value;
output out=want mean=;
run;``````

All Replies
PROC Star
Posts: 1,209

## Re: how to calculate a mean per semester

How are these periods defined? Why is june included in the last half year period in the first group but not in the last?

If you have a clear pattern of how your groups are defined, you can use PROC TIMESERIES.

Otherwise, use a data step to group the periods and use PROC MEANS.

Solution
‎11-13-2017 07:59 AM
Posts: 1,831

## Re: how to calculate a mean per semester

You can create the date_semester variable and calculate mean by it:

``````data temp;
set have;
length semstr \$7;
mon = put(date,yymmn6.);
if  '200507' le mon le '200512' then semstr = '2005_s2'; else
if  '200601' le mon le '200606' then semstr = '2006_s1'; else
if  '200606' le mon le '200612' then semstr = '2006_s2';
run;

proc means data=temp;
class semstr;
var    score_value;
output out=want mean=;
run;``````
Super User
Posts: 10,687

## Re: how to calculate a mean per semester

Use INTNX() to make a group variable then PROC SUMMARY.

``````data have;
input date : date9. value;
format date date9.;
cards;
05jun2017 21
12nov2017 43
21feb2016 32
21mar2017 3
;
run;

data have;
set have;
group=intnx('semiyear',date,0);
format group date9.;
run;

proc summary data=have nway;
class group;
var value;
output out=want mean=;
run;``````
☑ This topic is solved.

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