2016-06-16 10 views
1

Basierend auf einem Datumsbereich, zum Beispiel erstellen,R - Datum Wiederholung über Jahre

my.date <- seq(as.Date('2000-01-01'),as.Date('2009-12-31'), by="days") 

Ich brauche eine Wiederholung der Daten „1. Oktober“ und „Februar 20st“ über all die Jahre, dass zu schaffen Angebot.

Für das Beispiel vorgesehen, wäre das Ergebnis ein Datenrahmen wie folgt aussehen werden:

begin    end 
2000-10-01  2001-02-20 
2001-10-01  2002-02-20 
2002-10-01  2003-02-20 
2003-10-01  2004-02-20 
2004-10-01  2005-02-20 
2005-10-01  2006-02-20 
2006-10-01  2007-02-20 
2007-10-01  2008-02-20 
2008-10-01  2009-02-20 

Die Datumsbereiche Ich habe ziemlich unterschiedlich sind, so sollte idealerweise ich in der Lage sein, die ersten und letzten Jahren zu bestimmen die Reihenfolge automatisch.

Wie geht das?

+2

Ihr Anfangsdatum liegt nach Ihrem Enddatum in jeder Zeile. Ist das so, wie es sein sollte? –

+0

@BilltheLizard, danke für den Hinweis. Ich habe die ursprüngliche Frage bearbeiten. – thiagoveloso

+1

Nur Jahre hinzufügen: 'as.Date ('2000-10-01') + lubridate :: Jahre (1: 9)' – alistaire

Antwort

1

Hier ist eine Basis R-Methode mit seq und as.Date:

my.date.df <- data.frame(begin=seq(as.Date('2000-10-01'), 
            length.out=9, by="years"), 
         end=seq(as.Date('2001-02-20'), 
            length.out=9, by="years")) 

Hier wird die von mit "Jahre" ersetzt.

my.date.df 
     begin  end 
1 2000-10-01 2001-02-20 
2 2001-10-01 2002-02-20 
3 2002-10-01 2003-02-20 
4 2003-10-01 2004-02-20 
5 2004-10-01 2005-02-20 
6 2005-10-01 2006-02-20 
7 2006-10-01 2007-02-20 
8 2007-10-01 2008-02-20 
9 2008-10-01 2009-02-20