2017-05-05 5 views
0

Ich bin neu in R erstellen, und ich möchte einen Vektor zwischen zwei Terminen einWie ein Vektor zwischen zwei Terminen in R

hier schaffen, ist mein Code

start.plot <- c("2011-01-01", "2012-12-31") 
plot1 <- substr(start.plot[1],1,7) 
plot2 <- substr(start.plot[2],1,7) 

Month_test <- as.character(seq(as.Date(start.plot[1]), as.Date(start.plot[2]), by="months")) 

und hier ist das Ergebnis dieser Code

[1] "2011-01-01" "2011-02-01" "2011-03-01" "2011-04-01" "2011-05-01" "2011-06-01" 
[7] "2011-07-01" "2011-08-01" "2011-09-01" "2011-10-01" "2011-11-01" "2011-12-01" 

ich brauchte nur das YYYY-MM-Format für dieses Datum als ein Zeichen wie diese

[1] "2011-01" "2011-02" "2011-03" "2011-04" "2011-05" "2011-061" 
[7] "2011-07" "2011-08" "2011-09" "2011-10" "2011-11" "2011-12" 

Was ist der beste Weg, dies in R zu codieren? Danke

+0

Eigentlich, dass man nicht ein Duplikat sein kann, aber dann wieder diese Frage auch sehr wahrscheinlich eine irgendwo. –

+0

@DirkEddelbuettel Ich interpretierte die Frage als "Ich weiß, wie man Daten mit' seq' erhöht, aber das Monatsstück gerne extrahieren würde ". Unter dieser Deutung scheint das dupee @ sotos angemessen zu sein. – BrodieG

Antwort

3

Der Schlüssel ist, richtige Typen zu verwenden. Verwenden Sie niemals Zeichen für Daten.

R> p1 <- as.Date("2011-01-01") 
R> p2 <- as.Date("2012-12-31") 
R> mydates <- seq(p1, p2, by="day") 
R> head(mydates) 
[1] "2011-01-01" "2011-01-02" "2011-01-03" "2011-01-04" "2011-01-05" "2011-01-06" 
R> str(mydates) 
Date[1:731], format: "2011-01-01" "2011-01-02" "2011-01-03" "2011-01-04" "2011-01-05" "2011-01-06" "2011-01-07" ... 
R> 

Für die richtigen Typen Date und POSIXct (für für Datum und Uhrzeit), hat R einen viele von nützlicher Recheninfrastruktur. Wie Sie hier sehen, funktioniert die Sequenzerstellung "einfach".

können Sie dann wie außer am Wochenende zusätzliche Tricks usw.

+0

Danke dir Dirk Eddlebuettel für deine Zeit. – aotearoa

Verwandte Themen