Re: [R] Find missing days

From: <Lauri.Nikkinen_at_veripalvelu.fi>
Date: Wed, 2 Jan 2008 09:38:57 +0200


Thanks Gabor for your reply. Your script will find missing days in date1 range but my intention was to find missing days in each level (df$lev) in corresponding month. The resulting df could look like this:

    lev date1

1  lev1 2007-09-03
2  lev1 2007-09-04
4  lev1 2007-09-24
5  lev1 2007-09-25
6  lev1 2007-09-26
7  lev1 2007-09-27
8  lev1 2007-09-28
9  lev1 2007-09-29
10 lev1 2007-09-30
11 lev2 2007-09-01
12 lev2 2007-09-02
13 lev2 2007-09-03
14 lev2 2007-09-04
15 lev2 2007-09-05
16 lev2 2007-09-06
17 lev2 2007-09-07
18 lev2 2007-09-08
19 lev2 2007-09-09
20 lev2 2007-09-10
21 lev2 2007-09-11
22 lev2 2007-09-12
23 lev2 2007-09-13
24 lev2 2007-09-14
25 lev2 2007-09-15
26 lev2 2007-09-16
27 lev2 2007-09-17
28 lev2 2007-09-18
29 lev2 2007-09-19
30 lev2 2007-09-20
31 lev2 2007-09-21
32 lev2 2007-09-22
33 lev2 2007-09-23
34 lev2 2007-10-17
35 lev2 2007-10-18
36 lev2 2007-10-19
37 lev2 2007-10-20
38 lev2 2007-10-21
39 lev2 2007-10-22
20 lev2 2007-10-23
41 lev2 2007-10-24
42 lev2 2007-10-25
43 lev2 2007-10-26
44 lev2 2007-10-27
45 lev2 2007-10-28
46 lev2 2007-10-29
47 lev2 2007-10-20
48 lev2 2007-10-31
49 lev3 2007-10-01

etc.

Thanks again,
Lauri

-----Original Message-----
From: Gabor Grothendieck [mailto:ggrothendieck_at_gmail.com] Sent: 2. tammikuuta 2008 9:22
To: Nikkinen Lauri
Cc: r-help_at_stat.math.ethz.ch
Subject: Re: [R] Find missing days

Try this. It creates a sequence of dates from the range of df$date1 and then does a setdiff between that and the original dates. The result is numeric so we create a Date structure out of it.

structure(setdiff(do.call(seq, as.list(range(df$date1))), df$date1), class = "Date")

On Jan 2, 2008 1:55 AM, <Lauri.Nikkinen_at_veripalvelu.fi> wrote:
> Hi,
>
> I have a data.frame like this:
>
> y <- rnorm(60)
> lev <- gl(3,20, labels=paste("lev", 1:3, sep=""))
> date1 <- as.Date(seq(ISOdate(2007,9,1), ISOdate(2007,11,5),
> by=60*60*24))
> date1 <- date1[-c(3,4,15,34,38,40)]
> df <- data.frame(lev=lev, date1=date1, y=y)
>
> I would like to produce a new data.frame with missing days in df$date1
> in each df$lev, like this:
>
> lev date1
> 1 lev1 2007-09-03
> 2 lev1 2007-09-04
> 3 lev1 2007-09-15
> 4 lev2 2007-09-01
> 5 lev2 2007-09-02
> etc.
>
> How can I do this?
>
> Thanks,
> Lauri
> FRCBS
>
>
>
> [[alternative HTML version deleted]]
>

> ______________________________________________
> R-help_at_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_at_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. Received on Wed 02 Jan 2008 - 07:41:38 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Wed 02 Jan 2008 - 08:30:05 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive