2016-04-23 7 views
0

Ich habe einen Vektor von Datumsangaben KeyDates mit zwei Schlüsseldaten. Ich möchte einen neuen Vektor von Datumsangaben namens KeyDatesPlus erstellen, der diese beiden Schlüsseldaten und die beiden folgenden Tage in chronologischer Reihenfolge enthält.Fügen Sie einen Tag zu jedem Datum in einem Tag Vektor

KeyDates <- structure(c(15159,15165), class = "Date") 

#KeyDates Output: 
[1] "2011-07-04" "2011-07-10" 

#desired output for KeyDatesPlus: 
[1] "2011-07-04" "2011-07-05" "2011-07-10" "2011-07-11" 

Wie konnte ich das erreichen? Vielen Dank.

Antwort

1
sort(c(KeyDates, KeyDates + 1)) 
[1] "2011-07-04" "2011-07-05" "2011-07-10" "2011-07-11" 
0
KeyDates <- structure(c(15159,15165), class = "Date") 
KeyDatesPlus <- KeyDates+1 
KeyDatesPlus <- sort(unique(c(KeyDates, KeyDatesPlus))) 
+0

Viele ähnliche Antwort erschien gleichzeitig. Ich werde meine aufheben, da es das einzige ist, das einzigartig enthält, was erforderlich sein könnte, wenn zwei Daten in der ursprünglichen Liste fortlaufend sind – dww

1
structure(sapply(KeyDates, "+", (0:1)), class = "Date") 
[1] "2011-07-04" "2011-07-05" "2011-07-10" "2011-07-11" 

Oder:

as.Date(sapply(KeyDates, "+", (0:1))) 
[1] "2011-07-04" "2011-07-05" "2011-07-10" "2011-07-11" 
+0

Haben Sie versucht: 'KeyDates + (0: 1)'? Auch mit 'mapply', das das Herzstück von Vectorize bildet, wurden möglicherweise nützliche Ergebnisse erzielt, aber es sah sogar hackieriger aus als mein sapply Ansatz. Ich habe (erfolglos) versucht, etwas zu finden, das das Cartesion-Produkt von Argumenten lieferte, aber das Klassenattribut nicht fallen ließ. –

+0

Rechts. Aber ich habe nach etwas gesucht, was nicht irgendwie nötig war. Unterschiedliche Ästhetik, denke ich. –

+0

Ok, dann. Ich denke, ich verstehe deinen Standpunkt. –

1
KeyDates <- structure(c(15159,15165), class = "Date") 
KeyDates.plus <- as.Date(sapply(KeyDates, function(x) c(x, x+1))) 
Verwandte Themen