-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
project.org] On Behalf Of Norbert Skalski
Sent: Tuesday, August 28, 2012 9:49 AM
To: r-help at r-project.org
Subject: [R] date in plot, can't add regression line
Hello all,
I have been using R for about 3 weeks and I am frustrated by a problem.
I have read R in a nutshell, scoured the internet for help but I either
am not understanding examples or am missing something completely basic.
Here is the problem:
I want to plot data that contains dates on the x axis. Then I want to
fit a line to the data. I have been unable to do it.
This is an example of the data (in a dataframe called
"tradeflavorbyday"), 40 lines of it (I'm sorry it's not in a runnable
form, not sure how to get that from R) :
tradeflavor timestamp x
1 1 2009-01-22 1
2 2 2009-01-22 1
3 1 2009-01-23 1
4 1 2009-01-27 54
5 1 2009-01-28 105
6 2 2009-01-28 2
7 16 2009-01-28 2
8 1 2009-01-29 71
9 16 2009-01-29 2
10 1 2009-01-30 42
11 1 2009-02-02 19
12 16 2009-02-02 2
13 1 2009-02-03 36
14 4 2009-02-03 2
15 8 2009-02-03 3
16 1 2009-02-04 73
17 8 2009-02-04 12
18 16 2009-02-04 7
19 1 2009-02-05 53
20 8 2009-02-05 6
21 16 2009-02-05 9
22 1 2009-02-06 38
23 4 2009-02-06 6
24 8 2009-02-06 2
25 16 2009-02-06 3
26 1 2009-02-09 42
27 2 2009-02-09 2
28 4 2009-02-09 1
29 8 2009-02-09 2
30 1 2009-02-10 87
31 4 2009-02-10 2
32 8 2009-02-10 4
33 16 2009-02-10 3
34 1 2009-02-11 55
35 2 2009-02-11 6
36 4 2009-02-11 4
37 8 2009-02-11 2
38 16 2009-02-11 8
39 1 2009-02-12 153
40 2 2009-02-12 6
The plot displays the x column as the yaxis and the date as the x axis,
grouped by the tradetype column.
The timestamp column:
class(tradeflavorbyday$timestamp)
[1] "POSIXlt" "POSIXt"
So in this case I want to plot tradetype 1 (method 1):
xdates <- tradeflavorbyday$timestamp[tradeflavorbyday$tradeflavor == 1]
ydata <- tradeflavorbyday$x[tradeflavorbyday$tradeflavor == 1]
plot(xdates, ydata, col="black", xlab="Dates", ylab="Count")
Up to here it works great.
Now a abline through lm:
xylm <- lm(ydata~xdates) <------ this fails, can't do dates as below
abline(xylm, col="black")
Error in model.frame.default(formula = ydata ~ xdates,
drop.unused.levels = TRUE) :
invalid type (list) for variable 'xdates'