cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Choose Language Hide Translation Bar

How do I compute a 24 hour rolling average

I need to compute a 24 hour rolling average for each individual subject. 

 

I have the following columns:

 

Subject ID

Time stamp

Milk yeild

 

Can anyone help direct me in the right direction?

1 ACCEPTED SOLUTION

Accepted Solutions
txnelson
Super User

Re: How do I compute a 24 hour rolling average

Here is a simple script that creates your rolling average.  It creates a new column and uses a formula to generate the rolling average. Attached is a sample data table with the new column.  Please validate the calculations

Names Default To Here( 1 );
dt = Current Data Table();

dt << New Column( "Rolling Average",format("Percent",7,2),
	Formula(
		curTime = :Time stamp;
		curSubject = :Subject ID;
		Mean(
			:Milk yield[dt <<
			get rows where(
				:time stamp >= curTime - In Days( 1 ) & :time stamp
				 <= curTime & curSubject == Subject ID
			)]
		);
	)
);

 

Jim

View solution in original post

2 REPLIES 2
txnelson
Super User

Re: How do I compute a 24 hour rolling average

Here is a simple script that creates your rolling average.  It creates a new column and uses a formula to generate the rolling average. Attached is a sample data table with the new column.  Please validate the calculations

Names Default To Here( 1 );
dt = Current Data Table();

dt << New Column( "Rolling Average",format("Percent",7,2),
	Formula(
		curTime = :Time stamp;
		curSubject = :Subject ID;
		Mean(
			:Milk yield[dt <<
			get rows where(
				:time stamp >= curTime - In Days( 1 ) & :time stamp
				 <= curTime & curSubject == Subject ID
			)]
		);
	)
);

 

Jim

Re: How do I compute a 24 hour rolling average

This worked great! Just what I was looking for. Thank you