[R] converting a data set to a format for time series analysis
Ricardo Pietrobon
pietr007 at gmail.com
Wed Jun 11 23:27:11 CEST 2008
Jim, it worked perfectly. thanks a lot
On Mon, Jun 9, 2008 at 8:58 PM, jim holtman <jholtman at gmail.com> wrote:
> This should do it:
>
>> x <- read.table(textConnection("subject hospital date_enrollment
>> hospital_beds
> + 1 hospitalA 1/3/2002 300
> + 2 hospitalA 1/6/2002 300
> + 3 hospitalB 2/4/2002 150
> + 4 hospitalC 3/2/2002 200"), header=TRUE)
>> closeAllConnections()
>> y <- as.Date(x$date_enrollment, "%m/%d/%Y")
>> z <- cbind(x, year=format(y, "%Y"), month=format(y, "%m"))
>> # partition the data
>> z.s <- split(z, list(z$year, z$month, z$hospital), drop=TRUE)
>> # now aggregate
>> do.call(rbind, lapply(z.s, function(a) data.frame(hospital=a$hospital[1],
>> cases=nrow(a),
> + year=a$year[1], month=a$month[1], beds=a$hospital[1])))
> hospital cases year month beds
> 2002.01.hospitalA hospitalA 2 2002 01 hospitalA
> 2002.02.hospitalB hospitalB 1 2002 02 hospitalB
> 2002.03.hospitalC hospitalC 1 2002 03 hospitalC
>>
>>
>>
>
>
> On Mon, Jun 9, 2008 at 1:51 PM, Ricardo Pietrobon <pietr007 at gmail.com>
> wrote:
>>
>> Jim, thanks a lot. This does the trick for dates, but what I have
>> been struggling the most with is actually the conversion from having
>> one subject per row to having one month per row. I didn't explain
>> that well at all in my previous email and so let me try again. The
>> idea is that the current data set is displayed with one subject per
>> row. I would like to have it displayed having one hospital per month
>> per row. For example, the new data set would look like this:
>>
>> month year site number_enrolled_subjects
>> hospital_beds
>> 1 2002 hospitalA 22
>> 300
>>
>> meaning that hospital A enrolled 22 subjects in 01/2002, and hospital
>> A has 300 beds -- the beds variable is one variable in a vector that
>> would display all the covariates for my ARIMA model
>>
>> your suggestion solved the problem for the dates, but the command I am
>> looking for now is something that would count the number of subjects
>> per site per month of a year and then displayed it in the format
>> above. any thoughts?
>>
>> I really appreciate your help
>>
>>
>>
>>
>> On Mon, Jun 9, 2008 at 1:04 PM, jim holtman <jholtman at gmail.com> wrote:
>> > Will something like this work for you:
>> >
>> >> x <- read.table(textConnection("subject hospital date_enrollment
>> >> hospital_beds
>> > + 1 hospitalA 1/3/2002 300
>> > + 2 hospitalA 1/6/2002 300
>> > + 3 hospitalB 2/4/2002 150
>> > + 4 hospitalC 3/2/2002 200"), header=TRUE)
>> >> closeAllConnections()
>> >> y <- as.Date(x$date_enrollment, "%m/%d/%Y")
>> >> cbind(x, year=format(y, "%Y"), month=format(y, "%m"))
>> > subject hospital date_enrollment hospital_beds year month
>> > 1 1 hospitalA 1/3/2002 300 2002 01
>> > 2 2 hospitalA 1/6/2002 300 2002 01
>> > 3 3 hospitalB 2/4/2002 150 2002 02
>> > 4 4 hospitalC 3/2/2002 200 2002 03
>> >>
>> >>
>> >
>> >
>> > On Mon, Jun 9, 2008 at 12:45 PM, Ricardo Pietrobon <pietr007 at gmail.com>
>> > wrote:
>> >>
>> >> I currently have a data set describing human subjects enrolled into an
>> >> international clinical trial, the name of the hospital enrolling this
>> >> human subject, the date when the subject was enrolled, and a vector
>> >> with variables representing characteristics of the site (e.g., number
>> >> of beds in a hospital). my data sets looks like this:
>> >>
>> >> subject hospital date_enrollment hospital_beds
>> >> 1 hospitalA 1/3/2002 300
>> >> 2 hospitalA 1/6/2002 300
>> >> 3 hospitalB 2/4/2002 150
>> >> 4 hospitalC 3/2/2002 200
>> >>
>> >> to perform a time series analysis I am now trying to get to a format
>> >> that would give me the following variables:
>> >>
>> >> month year site number_enrolled_subjects hospital_beds
>> >>
>> >> the data would be displayed on one-month intervals, and number of
>> >> subjects clustered around sites.
>> >>
>> >> any help would be greatly appreciate
>> >>
>> >> thanks
>> >>
>> >>
>> >> Ricardo
>> >>
>> >> ______________________________________________
>> >> R-help at r-project.org 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.
>> >
>> >
>> >
>> > --
>> > Jim Holtman
>> > Cincinnati, OH
>> > +1 513 646 9390
>> >
>> > What is the problem you are trying to solve?
>
>
>
> --
> Jim Holtman
> Cincinnati, OH
> +1 513 646 9390
>
> What is the problem you are trying to solve?
More information about the R-help
mailing list