[R] Counting session days

Gustaf Rydevik gustaf.rydevik at gmail.com
Mon Feb 9 17:15:29 CET 2009


On Mon, Feb 9, 2009 at 4:57 PM,  <stefan.petersson at inizio.se> wrote:
>
> hi,
>
> I have some session data in a dataframe, where each session is recorded with a start and a stop date. Like this:
>
> session_start   session_stop
> ===================
> 2009-01-03      2009-01-04
> 2009-01-01      2009-01-05
> 2009-01-02      2009-01-09
>
> A session is at least one day long. Now I want a dataframe with 'active sessions' per date. Like this:
>
> date    active_sessions
> =============
> 2009-01-01      1
> 2009-01-02      2
> 2009-01-03      3
> 2009-01-04      3
> 2009-01-05      2
> 2009-01-06      1
> 2009-01-07      1
> 2009-01-08      1
> 2009-01-09      1
>
> How do I do that? I've searched the usual sources, but my newbie status and language barrier left me with nothing. So plz, anyone?
>

Hej Stefan,

The following should do. It's a bit convoluted though, so someone else
might be able to come up with a better solution.

> test
       start       stop
1 2009-01-03 2009-01-04
2 2009-01-01 2009-01-05
3 2009-01-02 2009-01-09

activeDaysPerSession<-apply(test,MARGIN=1,FUN=function(x)
seq(from=as.Date(x["start"]),
to=as.Date(x["stop"]),by=1
)
)
ActiveDays<-as.Date(unlist(activeDaysPerSession))
as.data.frame(table(ActiveDays))



Regards,

Gustaf

-- 
Gustaf Rydevik, M.Sci.
tel: +46(0)703 051 451
address:Essingetorget 40,112 66 Stockholm, SE
skype:gustaf_rydevik




More information about the R-help mailing list