[R] data frame row statistics (mean)?

Phil Spector spector at stat.berkeley.edu
Mon Jun 28 20:48:31 CEST 2010


Doug -
    Try

> d$avg = apply(d,1,mean,na.rm=TRUE)
> d
   st1 st2 st3 st4      avg
1   1   2   5   6 3.500000
2   2   5   5   5 4.250000
3   3   6  NA   7 5.333333
4   4   7   7   8 6.500000

(If you must use a loop, calculate

         mean(as.numeric(d[i,1:4]))

Take a look at  mean(d[1,1:4]) to see why your 
program doesn't work properly.)


 					- Phil Spector
 					 Statistical Computing Facility
 					 Department of Statistics
 					 UC Berkeley
 					 spector at stat.berkeley.edu


On Mon, 28 Jun 2010, Douglas M. Hultstrand wrote:

> Hello,
>
> I am trying to calculate the mean value of each row in a data frame (d), I am 
> having troubles and getting errors using the code I have written.  Below is a 
> brief example of the code, any thought or suggestions would be great.
>
> Thank you for your time,
> Doug
>
>
> # Example Code:
> d <- data.frame(st1=c(1,2,3,4), st2=c(2,5,6,7), st3=c(5,5,NA,7), 
> st4=c(6,5,7,8))
> avg <- rep(NA,length(d[,1]))
>
> for (i in 1:length(d[,1])) {
>       avg[i] = mean(d[i,1:4], na.rm=TRUE)
> }
>
> # Final Output wanted.
> st1 st2 st3 st4  avg
> 1   1   2   5   6 3.50
> 2   2   5   5   5 4.25
> 3   3   6  NA   7 5.33
> 4   4   7   7   8 6.50
>
> -- 
> ---------------------------------
> Douglas M. Hultstrand, MS
> Senior Hydrometeorologist
> Metstat, Inc. Windsor, Colorado
> voice: 720.771.5840
> email: dmhultst at metstat.com
> web: http://www.metstat.com
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list