Le 06/04/13 10:00, ZhaoXing a écrit :
Hi, all

I have a medium sized data, 6 years. Each observation is a case with a date 
variable, such as '2004-08-02'.
Some of the months didn't occur a case.
I want to plot the 6 years data by month, and the Y_axis is the freqency of 
cases for each month, meaning 12*6=72 bars or points in the figure.
I though of a method, 1st, using the months function, then ploting. But I need 
to assign zero to the months without case. And a lot of other manipulations.
Is there any simpler way to complete this? or just a simple function exists?

Thanks in advance

ZhaoXing

Sorry, I completely overlooked your question. Here is a better answer.
Sincerely
Marc

# I generate dummy data
x <- seq(from=as.Date("2000-01-01"), to=as.Date("2006-12-31"), by="1 day")
y <- sample(0:10, 2557, replace=TRUE)
t <- y + sample(5:20, 2557, replace=TRUE)
dt <- data.frame(d = x, obs = y, total=t)
# I erase some data; sometimes full month is erased
dt <- dt[c(20:156, 300:900, 1200:2557),]

# I begin here
# I generate a variable with all the months
x2 <- seq(from=as.Date("2000-01-01"), to=as.Date("2006-12-31"), by="1 month")

# I add this variable with all the months to the available data to have information also for missing months
dt <- rbind(dt, data.frame(d=x2,
    obs = rep(NA, length(x2)), total=rep(NA, length(x2))))

# I sum month per month
o1 <- with(dt, rowsum(obs, format(d,"%Y-%m"), na.rm=TRUE))
o2 <- with(dt, rowsum(total, format(d,"%Y-%m"), na.rm=TRUE))

# If total for a month is 0, I replace it with NA
o1[o2==0] <- NA
o2[o2==0] <- NA

# proportion
y <- o1/o2

# plot
plot(x2, y, bty="n", type="p", xaxt="n", las=1)

axis(1, at=seq(from=as.Date("2000-01-01"), to=as.Date("2006-12-31"), by="1 month"), label=FALSE) axis(1, at=seq(from=as.Date("2000-01-01"), to=as.Date("2006-12-31"), by="1 year"), lwd.ticks=2, label=FALSE, lwd=0) axis(1, at=seq(from=as.Date("2000-07-01"), to=as.Date("2006-12-31"), by="1 year"), lwd.ticks=0, label=c(2000:2006), lwd=0)

--
__________________________________________________________
Marc Girondot, Pr

Laboratoire Ecologie, Systématique et Evolution
Equipe de Conservation des Populations et des Communautés
CNRS, AgroParisTech et Université Paris-Sud 11 , UMR 8079
Bâtiment 362
91405 Orsay Cedex, France

Tel:  33 1 (0)1.69.15.72.30   Fax: 33 1 (0)1.69.15.73.53
e-mail: marc.giron...@u-psud.fr
Web: http://www.ese.u-psud.fr/epc/conservation/Marc.html
Skype: girondot

______________________________________________
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.

Reply via email to