【问题标题】:Choose specific date with strptime in r在 r 中使用 strptime 选择特定日期
【发布时间】:2013-04-03 16:49:11
【问题描述】:

我有一个带有标题的文本文件数据集

YEAR MONTH DAY value

从 2010 年 1 月 6 日到 2012 年 7 月 14 日每小时运行一次。我使用以下命令打开并绘制数据:

data=read.table('example.txt',header=T)
time = strptime(paste(data$DAY,data$MONTH,data$YEAR,sep="-"), format="%d-%m-%Y")
plot(time,data$value)

但是,当绘制数据时,x 轴仅显示 2011 年和 2012 年。。我怎样才能保留 2011 和 2012 标签,但还要添加一些特定的月份,例如如果我想要三月、六月和九月?

我已在此链接上提供数据

https://dl.dropbox.com/u/107215263/example.txt

【问题讨论】:

    标签: r time-series strptime


    【解决方案1】:

    您需要使用函数axis.POSIXct 来根据需要格式化和处理您的日期标签:

    plot(time,data$value,xaxt="n") #Skip the x-axis here
    axis.POSIXct(1, at=pretty(time), format="%B %Y")
    

    要查看所有可能的格式,请参阅?strptime
    您当然可以使用参数at 将您的刻度放置在您想要的任何位置,例如:

    axis.POSIXct(1, at=seq(time[1],time[length(time)],"3 months"), 
                 format="%B %Y")
    

    【讨论】:

    • 您的答案起初有点令人困惑,因为您使用的是自己的样本数据。为了清楚起见,也许您可​​以使用 OP 的示例数据。
    • 由于问题仅在于 x 轴设计,我认为这对任何人都没有关系(而且我也没有看到 OP 更新了他的数据)。但这里是 OP 数据。
    【解决方案2】:

    虽然这不能直接回答问题,但我建议您使用 xts 包进行任何时间序列分析。它使时间序列分析非常方便

    require(xts)
    
    DF <- read.table("https://dl.dropbox.com/u/107215263/example.txt", header = TRUE)
    head(DF)
    ##   YEAR MONTH DAY    value
    ## 1 2010     6   1  95.3244
    ## 2 2010     6   2  95.3817
    ## 3 2010     6   3 100.1968
    ## 4 2010     6   4 103.8667
    ## 5 2010     6   5 104.5969
    ## 6 2010     6   6 107.2666
    
    #Get Index for xts object which we will create in next step
    DFINDEX <- ISOdate(DF$YEAR, DF$MONTH, DF$DAY)
    
    #Create xts timeseries
    DF.XTS <- .xts(x = DF$value, index = DFINDEX, tzone = "GMT")
    
    
    head(DF.XTS)
    ##                         [,1]
    ## 2010-06-01 12:00:00  95.3244
    ## 2010-06-02 12:00:00  95.3817
    ## 2010-06-03 12:00:00 100.1968
    ## 2010-06-04 12:00:00 103.8667
    ## 2010-06-05 12:00:00 104.5969
    ## 2010-06-06 12:00:00 107.2666
    
    #plot xts
    plot(DF.XTS)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-06
      • 2014-05-15
      • 1970-01-01
      • 2019-03-22
      • 2023-03-17
      • 2019-10-04
      • 2022-01-12
      • 1970-01-01
      相关资源
      最近更新 更多