[R] Cumulative percentage by unit of time

Phil Spector spector at stat.berkeley.edu
Wed Dec 15 20:53:34 CET 2010


Sebastien -
     Since you didn't provide a reproducible example, I may
be off track, but here's how I'd handle the problem.

Suppose the data set with nest_id, LD, and FD is called mydata.

First create a function to find the percentage of active nests for
a given time:

> pctact = function(time)100*sum(mydata$LD <= time & mydata$FD >= time)/nrow(dat)

Now create the vector of dates you're interested in

> dts = 60:273

Finally use sapply to evaluate the percentage at each date:

> answer = data.frame(dts,sapply(dts,pctact))

If this isn't what you're looking for, a reproducible example
would be helpful.

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





On Wed, 15 Dec 2010, Sébastien Rioux wrote:

> Hi All,
>
> I've been struggling on that one for a couple of days. I've tried several
> things, but nothing is worth publishing.
>
> I'm working with a bird nests data frame for which I have a laying date (LD)
> and a fledgling date (FD) (in calendar Julian date) by nest id. For the
> period spanning between LD and SD, the nest is termed "active". Each nest id
> occur once in the data frame.
>
> How could I get the cumulative percentage of active nests by date within a
> specified time frame ? Let's say from Julian date 60 to 273 ?
>
> I would like the results to look like this :
>
> Julian_date  prct_ active
> 60                      0
> 61                      5
> 62                      10
> 63                      25
> ...
>
> Here is an example of the data frame
>
> nest_id     LD     FD
>   1    193    219
>   2    131    159
>   3    196    221
>   4    152    179
>   5    136    164
> ?
>
> Cheers,
>
> Sebastien
>
> 	[[alternative HTML version deleted]]
>
>


More information about the R-help mailing list