[R] How to format data for time-series analysis
jim holtman
jholtman at gmail.com
Mon Oct 29 01:08:08 CET 2007
Just add the steps to do the conversion yourself. Also you data seems
to be missing columns, at least in the mail you sent. Also the 'zoo'
object will be a character matrix.
> x <- read.table(tc <- textConnection(" Time Event State Value
+ 24-10-20 BMU 20
+ 25-10-20 Image 2
+ 26-10-20 BMU 10
+ 27-10-20 BMU 11
+ 28-10-20 Image 3
+ 29-10-20 DPMS Begin NA
+ 30-10-20 Dream Begin NA
+ 31-10-20 BMU 3
+ 1-11-20 Image 4
+ 2-11-20 BMU 50
+ 3-11-20 BMU 20
+ 4-11-20 DPMS End NA
+ 5-11-20 Dream End NA
+ "), fill=TRUE, header=TRUE)
> close(tc)
> # convert the times
> x$Time <- as.Date(as.character(x$Time), "%d-%m-%y")
> # convert to zoo
> require(zoo)
> x.z <- zoo(x[-1], x[[1]])
> str(x.z)
chr [1:13, 1:3] "BMU" "Image" "BMU" "BMU" "Image" "DPMS" "Dream"
"BMU" "Image" ...
- attr(*, "dimnames")=List of 2
..$ : chr [1:13] "1" "2" "3" "4" ...
..$ : chr [1:3] "Event" "State" "Value"
- attr(*, "index")=Class 'Date' num [1:13] 18559 18560 18561 18562 18563 ...
> x.z
Event State Value
2020-10-24 BMU 20 <NA>
2020-10-25 Image 2 <NA>
2020-10-26 BMU 10 <NA>
2020-10-27 BMU 11 <NA>
2020-10-28 Image 3 <NA>
2020-10-29 DPMS Begin <NA>
2020-10-30 Dream Begin <NA>
2020-10-31 BMU 3 <NA>
2020-11-01 Image 4 <NA>
2020-11-02 BMU 50 <NA>
2020-11-03 BMU 20 <NA>
2020-11-04 DPMS End <NA>
2020-11-05 Dream End <NA>
>
On 10/28/07, B. Bogart <bbogart at sfu.ca> wrote:
> Hey all again,
>
> So I'm going through tutorials and getting a better sense of R structures.
>
> So I made some mockup data to see if I can figure out how to load it
> properly. (attached) if anyone has any suggestions on a better way to
> structure that data please let me know.
>
> So the file has three columns, the date/time of the event, the event
> name, the event state (if there is one) and the event value (if there is
> one). I'm using the built-in date/time class of openoffice as a starting
> point for the date/time.
>
> I'm expecting to load this file as a data.frame where each column is a
> different class. Like so:
>
> > data <-
> read.table(file="testdata.csv",sep=",",header=TRUE,colClasses=c("zoo","factor","factor","numeric"))
>
> Unfortunately It seems there is no function for converting from
> "character" to "zoo":
>
> Error in methods::as(data[[i]], colClasses[i]) :
> no method or default for coercing "character" to "zoo"
>
> So I tried using POSIXct as suggested.
>
> Which does load the file, but it seems the times are truncated, leaving
> only the dates:
>
> > data
> Time Event State Value
> 1 24-10-20 BMU 20
> 2 25-10-20 Image 2
> ...3 26-10-20 BMU 10
> 4 27-10-20 BMU 11
> 5 28-10-20 Image 3
> 6 29-10-20 DPMS Begin NA
> 7 30-10-20 Dream Begin NA
> 8 31-10-20 BMU 3
> 9 1-11-20 Image 4
> 10 2-11-20 BMU 50
> 11 3-11-20 BMU 20
> 12 4-11-20 DPMS End NA
> 13 5-11-20 Dream End NA
>
> Same results as using "Date" as the colClass.
>
> Any advice?
>
> Thanks,
> B. Bogart
>
>
>
>
> ______________________________________________
> 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?
More information about the R-help
mailing list