On 5/16/07, fatih ozgul <[EMAIL PROTECTED]> wrote:
> Dear R-ians
>
> I have a data frame like
>
> Person_id  Date/time        Count
> ---------  ----------      -------
> 123         20 May 1999      1
> 123         21 May 1999      3
> 222         1  Feb 2000      2
> 222         3  Feb 2000      4
>
> I want to create ts objects for each person_id (i.e. 123 and 222). Time
> series frequency can be in months and all starting from the same date (i.e.
> May 1999).
>
> Rather than manually creating sum of counts for each month and creating ts
> objects manually for each persons,
>
> Is there a function for creating ts objects automatically from such data?
>

Try this:

# read in as data frame and fix up date
Lines.raw <- "Person_id Date/time Count
123 20 May 1999 1
123 21 May 1999 3
222 1 Feb 2000 2
222 3 Feb 2000 4
"
library(zoo)
DF <- read.table(textConnection(Lines.raw), skip = 1,
  col.names = c("Person_id", "d", "b", "Y", "Count"))
DF$Date.time <- as.Date(paste(DF$d, DF$b, DF$Y), "%d %b %Y")

# aggregate counts over months, series and convert to "ts"
f <- function(DF) aggregate(zoo(DF$Count), as.yearmon(DF$Date.time), sum)
z <- do.call("merge.zoo", lapply(split(DF, DF$Person_id), f))
frequency(z) <- 12
as.ts(z)

______________________________________________
[email protected] 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.

Reply via email to