Hi Clay-
You may want to look at both the XTS package, in addition to 'strptime'
and 'as.POSIXct'
When I get datasets in Excel, what I normally do is change the date
(column) format to YYYY-mm-dd.. But that's due to my own shortcomings
with date formatting in R.
Here's a quick example:
> x = read.csv('TestData.csv')
> x
Subject Date Time Value
1 1 2003-07-23 13:05:00 84
2 1 2003-07-23 13:10:00 87
3 1 2003-07-23 13:15:00 95
4 2 2004-09-25 14:34:00 95
5 2 2004-09-25 14:39:00 81
6 2 2004-09-25 14:44:00 93
7 3 2004-03-02 16:34:00 72
8 3 2004-03-02 16:39:00 67
9 3 2004-03-02 16:44:00 83
dates = as.POSIXct(strptime(paste(x[,2], x[,3], sep=" "),
format="%Y-%m-%d %H:%M:%S"))
> dates
[1] "2003-07-23 13:05:00 EDT" "2003-07-23 13:10:00 EDT" "2003-07-23
13:15:00 EDT"
[4] "2004-09-25 14:34:00 EDT" "2004-09-25 14:39:00 EDT" "2004-09-25
14:44:00 EDT"
[7] "2004-03-02 16:34:00 EST" "2004-03-02 16:39:00 EST" "2004-03-02
16:44:00 EST"
> data = xts(x[,c(1,4)], order.by=dates)
> data
Subject Value
2003-07-23 13:05:00 1 84
2003-07-23 13:10:00 1 87
2003-07-23 13:15:00 1 95
2004-03-02 16:34:00 3 72
2004-03-02 16:39:00 3 67
2004-03-02 16:44:00 3 83
2004-09-25 14:34:00 2 95
2004-09-25 14:39:00 2 81
2004-09-25 14:44:00 2 93
HTH
-cedrick
=============================
Cedrick Johnson
aolim) cedrickjcvgr
www.cedrickjohnson.com
New York - Chicago
On 3/11/2010 3:13 PM, Clay Heaton wrote:
Hi, I'm trying to learn R for a project I'm working on. I know several
programming languages, so I'm comfortable with the syntax. What I can't figure
out is how to import the file of time series data that I have and parse it into
individual series. The data was given to me in Excel, but I can output it to
tab-delimited or csv. I've been able to pull in the entire table with
read.table(), but I can't figure out how to parse it into distinct groups.
It looks like this:
Subject Date Time Value
1 7/23/03 13:05:00 84
1 7/23/03 13:10:00 87
1 7/23/03 13:15:00 95
....
1 9/25/04 14:34:00 95
1 9/25/04 14:39:00 81
1 9/25/04 14:44:00 93
...
2 3/02/04 16:34:00 72
2 3/02/04 16:39:00 67
2 3/02/04 16:44:00 83
...
2 3/21/05 11:15:00 121
2 3/21/05 11:20:00 125
2 3/21/05 11:25:00 120
...
There are ~ 100,000 rows of data. There are 86 subjects and each of them have
multiple traces. For each trace, the times are in uniform increments of 5
minutes. Some subjects have multiple traces, some have a single trace. Some
traces include up to 500 values and others only 40.
For now, what I'm looking to do is to be able to generate summary statistics
for each trace, and then for each subject. Hence, I need a way to aggregate by
value or subject, where the criteria for aggregating traces are that the values
were collected on the same day and all are within 5 minutes of each other. I
would like to be able to iterate through the data to plot each trace
independently.
Any suggestions to help me get started would be appreciated. I'm looking to
learn, so I'd appreciate pointers to good tutorials or code examples of dealing
with time series data.
Thanks!
Clay
______________________________________________
R-help@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.
______________________________________________
R-help@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.