[R] Getting group size in a data frame

Alex Brown alex at transitive.com
Thu Oct 19 12:52:15 CEST 2006


I can't quite tell what you are looking for, but try the following:

measurecols = c("val1","val2")
df2 <- df[!apply(is.na(df[1:nrow(df),measuredcols]),1,all),]

to remove rows which have no measurements in.

a simple count of the rows (nrow) will then give you the number of  
animals that didn't die, and then

table(df2$factor)

will tell you how many per group didn't die

table(df2$factor[!is.na(df2$val1)]

and

names(measurecols) = measurecols

lapply(measurecols, function(x)table(df2$factor[!is.na(df2[,x])]))

will tell you for each measurement, how many of each group you got.

-Alex

On 19 Oct 2006, at 08:37, Ulrik Stervbo wrote:

> Hi all,
>
> I have a data frame with some measured values of some animals.  
> Sometimes the
> measurement failed, resulting in a NA for a measurement and  
> sometimes the
> animal died, resulting in NA for all measurements.
>
> I have several groups of animals. How do I find the size of each  
> group with
> only alive animals? And how do I find the size of the groups for each
> measurement?
>
> An example:
> l1 <- list(factor=c(24,24,24), val1=c(2, 3, NA), val2=c(4, NA, NA))
> df <- as.data.frame(l1)
> df$factor <- factor(df$factor)
>
> The size of factors should be 2 and not 3.  The number of  
> measurement in
> val1 should be 2 and the number of measurements in val2 should be 1
>
> Thanks in advance for any help and suggestions
> Ulrik
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at stat.math.ethz.ch 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