我的数据集如下所示:

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轴并不是很漂亮,但是如果你有更多的实际数据,这可能是可以的,或者你可以使用?plot.zoo的示例部分所示的一个奇特的X轴的代码.

上面创建的动物园系列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"

Note:

  1. "yearmon"个类对象按日历顺序排序.

  2. 这将以等距间隔绘制月点,这可能是所需的;然而,如果需要按照与每月天数成比例的不相等间隔绘制点,则将指数z转换为"Date"级:time(z) <- as.Date(time(z)).

R相关问答推荐

过滤Expand.Grid的结果

如何判断某列中由某些行组成的百分比

如果行和列名以相同的开头,将矩阵值设置为0

为什么st_join(ob1,ob2,left = True)返回具有比ob1更多功能的sf对象?

使用tidyverse方法绑定行并从一组管道列表执行左连接

随机森林回归:下拉列重要性

有没有一个R函数允许你从一个数字变量中提取一个数字,而不考虑它的位置(不仅仅是第一个或最后一个数字?

如何在R中合并和合并多个rabrame?

如何编辑ggplot的图例字使用自定义对象(gtable)?'

用值序列对行进行子集化,并标识序列开始的列

如何直接从R中的风险分数计算c指数?

为什么舍入POSIXct会更改能力以匹配等效的POSIXct?

未识别时区

为什么当用osmdata映射R时会得到相邻状态?

将文件保存到新文件夹时,切换r设置以不必创建目录

将二进制数据库转换为频率表

从R中的对数正态分布生成随机数的正确方法

Geom_arcbar()中出错:找不到函数";geom_arcbar";

使用geom_sf跨越日期线时的闭合边界

生存时间序列的逻辑检验