转换年份和月份到R中的日期?

我有一个数据集,看起来像这样:

Month count 2009-01 12 2009-02 310 2009-03 2379 2009-04 234 2009-05 14 2009-08 1 2009-09 34 2009-10 2386

我要绘制的数据(个月x值,并计算为y值)。 由于有数据差距,我想月信息转换成一个日期。 我试过了:

as.Date("2009-03", "%Y-%m")

但它没有工作。 怎么了? 似乎as.Date()也需要一天无法设定为一天的标准值? 哪个函数解决我的问题?

--------------解决方案-------------

尝试这个。 (这里我们使用text=Lines保持示例自包含但在现实中,我们将与文件名 ​​替换它。)

Lines <- "2009-01 12
2009-02 310
2009-03 2379
2009-04 234
2009-05 14
2009-08 1
2009-09 34
2009-10 2386"

library(zoo)
z <- read.zoo(text = Lines, FUN = as.yearmon)
plot(z)

X轴与此数据很漂亮,但如果你在现实中有更多的数据,可能是好的,也可以使用代码中的例子显示部分看中的X轴?plot.zoo

动物园系列, z ,就是上面创建有一个"yearmon"时间指数,如下所示:

> z
Jan 2009 Feb 2009 Mar 2009 Apr 2009 May 2009 Aug 2009 Sep 2009 Oct 2009
12 310 2379 234 14 1 34 2386

"yearmon"可以单独使用,以及:

> as.yearmon("2000-03")
[1] "Mar 2000"

注意:

  1. "yearmon"类对象日历进行排序。
  2. 这将绘制在相等的间隔这很可能什么都想每月分; 然而,如果它被期望绘制在比例隔开,以天在每个月的数量不等的间隔点再转换的指数z"Date"类: time(z) <- as.Date(time(z))

由于日期对应的数值和起始日期,你确实需要的那一天。 如果你真的需要你的数据在日期格式,你可以解决天到每月的第一天手动将其粘贴到日期:

month <- "2009-03"
as.Date(paste(month,"-01",sep=""))

最简洁的解决方案,如果你需要的日期是在日期格式:

library(zoo)
month<-"2000-03"
as.Date(as.yearmon(month))
[1] "2000-03-01"

as.Date将修复每个月的第一天就为你yearmon对象。

您应该能够使用strptime做到这一点。 尝试类似

as.Date(strptime(Month, format = "%Y-%m"))

分类:ř 时间:2015-03-15 人气:6
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.713 (s). 10 q(s)