On 06/03/2012 11:27 PM, stef salvez wrote:
Dear R users,
I have the following problem
I have a panel data across countries and individuals. For each country
I have a sequence of dates
For France for example
22/02/09
22/03/09
19/04/09
17/05/09
12/07/09
09/08/09
06/09/09
04/10/09
01/11/09
29/11/09
27/12/09
31/01/10
For Italy
14/06/09
12/07/09
09/08/09
06/09/09
04/10/09
01/11/09
29/11/09
27/12/09
31/01/10
28/02/10
28/03/10
The structure of the MS excel file is the following
France Italy ......
22/02/09 14/06/09
22/03/09 12/7/2009
19/04/09 9/8/2009
17/05/09 6/9/2009
12/7/2009 4/10/2009
09/08/09 01/11/09
6/9/2009 29/11/09
4/10/2009 27/12/09
01/11/09 31/01/10
29/11/09 28/02/10
27/12/09 28/03/10
31/01/10
I want to "plot" (in one graph) these sequences of dates in the
sense that I want to have a "visual" contact of the behaviour
of each of these 2 sequences because as you can see I do not have the same
start date and end date for each country and each next date is not
always every other 28 days. So the difference between 2 successive
dates is not always 28 days but 35 is some cases or otherwise. Put
differently, I have "jumps".
I would like to visualize these
characteristics of the series of dates by
making a plot similar to
http://i46.tinypic.com/2h7gpvn.png
But this is not enough.
I want to measure the distance between 2 successive knots (the
difference between 2 successive dates) and note on the plot the
number of weeks that separate apart the successive knots-dates
Something like
http://www.survey-design.com.au/stripplot3.png
where as you can see between the knots there are some red lines. In my
case these red lines would inform the reader about the number of weeks
between successive knots-dates
Hi stef,
This is rather messy and needs some axis tuning, but it might do what
you want:
France<-c("22/02/09","22/03/09","19/04/09","17/05/09","12/07/09",
"09/08/09","06/09/09","04/10/09","01/11/09","29/11/09","27/12/09",
"31/01/10")
Italy<-c("14/06/09","12/07/09","09/08/09","06/09/09","04/10/09",
"01/11/09","29/11/09","27/12/09","31/01/10","28/02/10","28/03/10")
Francedates<-as.Date(France,"%d/%m/%y")
Italydates<-as.Date(Italy,"%d/%m/%y")
require(plotrix)
plot(Francedates,rep(1,length(France)),
xlim=as.Date(c("01/01/09","01/04/10"),"%d/%m/%y"),ylim=c(0,3),
yaxt="n",type="b",xlab="",ylab="")
axis(2,at=1:2,labels=c("France","Italy"),las=1)
points(Italydates,rep(2,length(Italy)),type="b",pch=2)
segments(as.numeric(Francedates)[1:(length(Francedates)-1)]+
diff(as.numeric(Francedates))/2,rep(1,length(Francedates)-1),
seq(min(as.numeric(Francedates)),max(as.numeric(Francedates)),
length.out=length(Francedates)-1),rep(0.25,length(Francedates)-1))
boxed.labels(seq(min(as.numeric(Francedates)),
max(as.numeric(Francedates)),length.out=length(Francedates)-1),
rep(0.25,length(Francedates)-1),
diff(as.numeric(Francedates))/7)
segments(as.numeric(Italydates)[1:(length(Italydates)-1)]+
diff(as.numeric(Italydates))/2,rep(2,length(Italydates)-1),
seq(min(as.numeric(Italydates)),max(as.numeric(Italydates)),
length.out=length(Italydates)-1),rep(2.75,length(Italydates)-1))
boxed.labels(seq(min(as.numeric(Italydates)),
max(as.numeric(Italydates)),length.out=length(Italydates)-1),
rep(2.75,length(Italydates)-1),
diff(as.numeric(Italydates))/7)
You have also alerted me to the fact that the spread.labels function
doesn't do quite what I would like it to do, so it will be revised.
Jim
______________________________________________
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.