[R] Function for subset of cases/lines
Richard.Cotton at hsl.gov.uk
Richard.Cotton at hsl.gov.uk
Thu May 15 10:54:36 CEST 2008
> 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}}
More information about the R-help
mailing list