【问题标题】:How to make a date column by year in R?如何在R中按年制作日期列?
【发布时间】:2013-12-07 18:32:41
【问题描述】:

我在这样做时遇到了麻烦,我需要这样做,因为我的 ggplot x 轴很乱。为什么以下工作不起作用:

as.Date(c(2000:2012), "%Y")

或者有没有更简单的方法可以让 x 轴为年,也许每 4 年?添加

scale_x_datetime(labels = date_format("%Y"))

在我的 ggplot 代码返回后

Error: Invalid input: time_trans works with objects of class POSIXct only

【问题讨论】:

  • 看看?seq.Date。也可以试试as.Date(as.character(c(2000:2012)), "%Y")

标签: r date time-series


【解决方案1】:
as.Date(paste(2000:2012, "01", "01",sep="-"), format="%Y-%m-%d")

然后您可以将日期格式化为:

 format(as.Date(paste(2000:2012, "01", "01",sep="-"), format="%Y-%m-%d"), "%Y" )

您可以将日期参数用于 scale 函数中断参数,并且只使用一系列年份值:

 scale_x_datetime(breaks=as.Date(paste(2000:2012, "01", "01",sep="-"), format="%Y-%m-%d"),
                  labels = as.character(2000:2012)

如果您希望每隔 4 年进行一次:

scale_x_datetime(breaks=as.Date(seq(2000,2012, by=4), "01", "01",sep="-"), format="%Y-%m-%d"),
                  labels = as.character( seq(2000,2012, by=4) )

这个未经测试的代码中有很多猜测,因为您没有提供“可重现的示例”。

【讨论】:

  • 如果我只想要 2000,2001,2002 怎么办。我有一个 13x28 的数据集,每一行都是不同的年份。
  • 您需要发布一个可重现的示例。
猜你喜欢
  • 2022-06-24
  • 2018-12-08
  • 1970-01-01
  • 1970-01-01
  • 2017-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多