我有这个数据集,并尝试转换为日期,以便我可以绘制它:
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,任何想法?
答案 0 :(得分:6)
您需要一天时间将其转换为日期:
##Make each date the first of the month
strptime(paste("1", as.character(y)), format="%d %b-%y")
答案 1 :(得分:1)
如果你将以regalr为基础在月份范围内处理时间序列,你可能还想看看动物园包,它作为'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"