0

I have factor data as follows in dateData:

Factor w/ 24 levels "Apr 2017","Apr 2018",..: 11 3 23 21 19 5 9 7 15 1 ...

I am converting factor data into Date object as follow:

dateData1 <- as.Date(dateData, format = "%y%m")

I want factor data into YearMonth format

but its returning NA like

[1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA

Jaap
  • 81,064
  • 34
  • 182
  • 193
Ashu
  • 41
  • 1
  • 2
  • 3
  • 1
    use `as.character(dateData)` – Jaap Apr 25 '17 at 09:49
  • http://stackoverflow.com/questions/3418128/how-to-convert-a-factor-to-an-integer-numeric-without-a-loss-of-information – jogo Apr 25 '17 at 09:55
  • also if you want a year-month variable, you might want to look at `as.yaermon` from the `zoo`-package – Jaap Apr 25 '17 at 10:02
  • I have tried this but Actually I want dateData for subset() function as I am taking Year and Month input from user so I get specific data from my data set after subset – Ashu Apr 25 '17 at 10:04
  • I also tried as.yearmon but it is converting into year only – Ashu Apr 25 '17 at 10:13
  • 1
    The format for dates in the form `Apr 2017` should be `"%b %Y"` - look at `?strptime` – Andrew Gustar Apr 25 '17 at 10:45

2 Answers2

0

As mentioned above you can use either yearmon from the zoo package or as.Date:

dateData <- factor(c("Apr 2017", "Apr 2018"))
as.Date(paste(as.character(dateData), "01"),format = "%B %Y %d")
require(zoo)
as.yearmon(as.character(dateData))
Tobias Dekker
  • 980
  • 8
  • 19
0

Or in base-R

dateData <- factor(c("Apr 2017","Apr 2018"))
dateData2 <- factor(format(as.Date(paste0("01 ",as.character(dateData)),
                        format="%d %b %Y"),format="%y%m"))
Andrew Gustar
  • 17,295
  • 1
  • 22
  • 32