2017-12-01 3 views
1

Dieses Objekt ist im Zeichenformat und ich möchte vermeiden, die 10 by String-basierten Funktionen zu extrahieren, da es sehr umständlich ist. Wenn es einen Weg durch as.Date() und irgendein bestimmtes Format gibt, würde ich glücklich sein, das zu verwendenSo extrahieren Sie den Monat aus einem Jahr-Monat (2017-10) -Typ Objekt in R?

+0

Dies kann helfen, verwenden kann: https://stackoverflow.com/questions/6242955/converting- Jahr-und-Monat-JJJJ-MM-Format-zu-einem-Datum – jjl

+0

Weil 6,7 nicht generisch ist. Monat könnte 5 sein sowie 12 –

+0

Am wenigsten umständlich wäre wahrscheinlich nur eine Regex, die alle Ziffern von "-" bis zum Ende erfasst. – joran

Antwort

1

Ich habe wirklich genossen anydate aus dem anytime Paket in letzter Zeit.

Try this:

library(anytime) 
format(anydate("2017-10"), "%m") 
0

Dieser wandelt es in ein yearmon Objekt (die ein Jahr und Monat ohne Tag darstellt) und extrahiert dann den Monat. Weitere Informationen finden Sie unter ?yearmon.

library(zoo) 

cycle(as.yearmon("2017-10")) 
## [1] 10 
0

Ich glaube, diese Frage wurde zuvor auf SO gestellt.

Als eine Alternative zum anytime Paket, das Sie lubridate

library(lubridate) 
format(ymd("2017-10", truncated = 1L), "%m") 

oder mit Sockel R

format(as.Date(paste0("2017-10", "-01")), "%m") 
Verwandte Themen