Re: [R] Function for subset of cases/lines

From: <Richard.Cotton_at_hsl.gov.uk>
Date: Thu, 15 May 2008 09:54:36 +0100


> I have a vector:
>
> q1<-c(4660,5621,5629,8030,8080,8180,8501,8190,8370,8200)
>
> The following command gives me the mean of its elements:
>
> mean(q1)
> [1] 7346.1
>
> What can I do to do the same for the variable 'height', but only for the

> cases/rows which have one of the elements of q1 as 'number':
>
> number height
> 1 4660 2.5
> 2 5010 1.4
> 3 5621 0.8
> 4 5629 2.3
> 5 8030 2.5
> 6 8080 2.4
> 7 8090 0.9
> 8 8180 1.4
> 9 8501 1.2
> 10 8190 1.9
> 11 8200 2.0
> 12 8370 2.1
> 13 8200 1.8

This will do the trick:
mean(df$height[df$number %in% q1])

Or, if you want the mean of those elements which aren't in q1 as well, try:
tapply(df$height, df$number %in% q1, mean)

(Both assume that you've named the data frame 'df'.)

Regards,
Richie.

Mathematical Sciences Unit
HSL



ATTENTION: This message contains privileged and confidential inform...{{dropped:20}}

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. Received on Thu 15 May 2008 - 12:23:46 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Thu 15 May 2008 - 12:30:43 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive