[R] rowMean, specify subset of columns within Dataframe?

Charles C. Berry cberry at tajo.ucsd.edu
Sun Nov 25 22:01:33 CET 2007


On Sun, 25 Nov 2007, aaront wrote:

>
> I would like to calculate the mean of tree leader increment growth over 5
> years (I1 through I5) where each tree is a row and each row has 5 columns.
> So far I have achieved this using rowMeans when all columns are numeric type
> and used in the calculation:
>
> Data1 <- data.frame(cbind(I1 = 3, I2 = c(0,3:1, 2:5,NA), I3
> =c(1:4,NA,5:2),I4=2,I5=3))
> Data1


Try

 	!sapply( Data1, is.factor )

then

 	Data_2 <- transform( Data1, I5.factor=factor(I5) )
 	!sapply( Data_2, is.factor )

then


 	rowMeans( Data_2[ , !sapply( Data_2, is.factor ) ], na.rm = TRUE )


See

 	?Subscript
 	?sapply

HTH,

Chuck


> Data1$mean_5 <- rowMeans(Data1, na.rm =T)
> Data1
>
> My real dataset has many columns including several Factor type. Is it
> possible to specify a range of columns within a data frame  using rowMeans
> dims= (say where there is a one
> Factor  column called Species leading I1 to I5, and one Factor column called
> Moisture following, so 7 columns total) , or do I either need to extract
> those columns to a new data frame, calculate means, and reattach to the
> original data frame, or use a different function such as apply?
>
> Unfortunately I am fairly new to R and have a difficult time with some
> terminology and concepts in R Help.
>
> -- 
> View this message in context: http://www.nabble.com/rowMean%2C-specify-subset-of-columns-within-Dataframe--tf4871420.html#a13939204
> Sent from the R help mailing list archive at Nabble.com.
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> 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.
>

Charles C. Berry                            (858) 534-2098
                                             Dept of Family/Preventive Medicine
E mailto:cberry at tajo.ucsd.edu	            UC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/  La Jolla, San Diego 92093-0901



More information about the R-help mailing list