tags:

views:

43

answers:

2

I have a set of data need to be plotted (1M rows) with R. The time column (column 1) is in hh:mm:ss.000 format. I would like to plot the graph in a time range, say from 08:05:00 to 09:00:00. How do I do it? I have searching the web and couldn't find a way to set the xlim properly.

Here's an short example of the data. Column 1 is time, Column 2, 3, 4.. will be on y axis. 07:51:19.553,10.785,0.000,0.392,1.512,1.527,1.553,1.560,2.838

08:05:00.661,-1.555,0.000,0.041,0.310,0.314,0.321,0.327,1.474

08:06:58.250,30.781,0.000,0.093,0.156,0.160,0.168,0.173,1.411

08:30:02.506,-0.002,0.000,0.052,0.120,0.123,0.132,0.137,1.361

09:05:00.997,-1.802,0.000,0.032,0.078,0.080,0.087,0.090,1.258

10:05:00.661,-1.555,0.000,0.041,0.310,0.314,0.321,0.327,1.474

Thanks in advance for your help.

+3  A: 

You really want to use a proper time series class such as zoo or xts

Subsetting, plotting, ... then come for free. Start with the excellent zoo documentation before maybe switching to xts for even better performance and subsetting.

Now, one million rows is too many as you end up with more data than pixels -- but at least this will give you a chance to summarize your data.

Here is a quick illustration:

> options(digits.sec=3)      ## important: turn on milli-sec via print()
> library(xts)
Loading required package: zoo
> X <- xts(cumsum(rnorm(100)), order.by=Sys.time()+cumsum(runif(100)/10))
> plot(X)
Dirk Eddelbuettel
Thanks for reply. Bear with me. I am a newby in R.> library(xts)Error in library(xts) : there is no package called 'xts'Do I need something else? I have R version 2.11.1 (2010-05-31)
Ching
Ah, yes: Do `install.packages(c("zoo", "xts"))` and select a nearby mirror.
Dirk Eddelbuettel
It looks like I have trouble accessing the index for repository. Not sure if my company blocks the access or not. Maybe I will try it from home. Thanks.
Ching
+1  A: 

To change character vector to "date & time" object, POSIXlt(ct) object, function strptime() will come handy. Here's a short example how it's done.

dtm <-  strptime(c("1.1.2010 11:35"), format =  "%d.%m.%Y %H:%M", tz = "CET")
Roman Luštrik
I have no problem display the string in hh:mm:ss.000. Trouble is on limit time range in ploting
Ching