2

我有这个数据集并试图转换为日期,以便我可以绘制它:

dput(y)
structure(c(23L, 17L, 41L, 1L, 47L, 35L, 29L, 7L, 63L, 58L, 53L, 
12L, 24L, 18L, 42L, 2L, 48L, 36L, 30L, 8L, 64L, 59L, 54L, 13L, 
25L, 19L, 43L, 3L, 49L, 37L, 31L, 9L, 65L, 60L, 55L, 14L, 26L, 
20L, 44L, 4L, 50L, 38L, 32L, 10L, 66L, 61L, 56L, 15L, 27L, 21L, 
45L, 5L, 51L, 39L, 33L, 11L, 67L, 62L, 57L, 16L, 28L, 22L, 46L, 
6L, 52L, 40L, 34L), .Label = c("APR-07", "APR-08", "APR-09", 
"APR-10", "APR-11", "APR-12", "AUG-07", "AUG-08", "AUG-09", "AUG-10", 
"AUG-11", "DEC-07", "DEC-08", "DEC-09", "DEC-10", "DEC-11", "FEB-07", 
"FEB-08", "FEB-09", "FEB-10", "FEB-11", "FEB-12", "JAN-07", "JAN-08", 
"JAN-09", "JAN-10", "JAN-11", "JAN-12", "JUL-07", "JUL-08", "JUL-09", 
"JUL-10", "JUL-11", "JUL-12", "JUN-07", "JUN-08", "JUN-09", "JUN-10", 
"JUN-11", "JUN-12", "MAR-07", "MAR-08", "MAR-09", "MAR-10", "MAR-11", 
"MAR-12", "MAY-07", "MAY-08", "MAY-09", "MAY-10", "May-11", "MAY-12", 
"NOV-07", "NOV-08", "NOV-09", "NOV-10", "NOV-11", "OCT-07", "OCT-08", 
"OCT-09", "OCT-10", "OCT-11", "SEP-07", "SEP-08", "SEP-09", "SEP-10", 
"SEP-11"), class = "factor")

我试过

 y1 <- strptime(y, format = "%b-%y")

y1 得到所有 NA,有什么想法吗?

4

2 回答 2

6

您需要一天将其转换为日期:

##Make each date the first of the month
strptime(paste("1", as.character(y)), format="%d %b-%y")
于 2012-08-09T20:25:34.750 回答
1

如果您将定期处理月尺度上的时间序列,您可能还想查看 zoo 包,它是一个不需要添加“月的第一天值”的“yearmon”类。它有许多相关的绘图和计算方法。广泛使用的“xts”包基于“动物园”结构。

 require(zoo)
 zym <- as.yearmon(as.character(y), "%b-%y")
 str(zym)
#Class 'yearmon'  num [1:67] 2007 2007 2007 2007 2007 ...
 head(zym)
#[1] "Jan 2007" "Feb 2007" "Mar 2007" "Apr 2007" "May 2007" "Jun 2007"
 format(head(zym), "%b %y")
#[1] "Jan 07" "Feb 07" "Mar 07" "Apr 07" "May 07" "Jun 07"
于 2012-08-09T21:39:28.780 回答