【问题标题】:creating time object in R在 R 中创建时间对象
【发布时间】:2012-01-13 15:44:00
【问题描述】:

我有以下数据

>d
2010-07-02
>t
835

我发出以下命令

>dt<-paste(d,t)
>dt
"2010-07-02 835" 

然后我发出以下命令,它返回NA如下:

>dtt<-as.POSIXlt(strptime(dt,'%Y-%m-%d %H%M'))
>dtt
 NA

所以我做了以下更改

>t=1001

现在当我跑步时 dt 后跟 dtt,它工作正常,返回

dtt "2010-07-02 10:01:00"

所以,在我看来,小时的第一个数字为 0 存在问题,这就是为什么当 HHMM 小于 1000 时,它会生成 NA。谁能建议我如何解决这个问题。谢谢!

【问题讨论】:

    标签: r time-series


    【解决方案1】:

    使用sprintf 格式化您的时间字符串,然后再将其传递给as.POSIXlt

    d <- "2010-07-02"
    h <- 835
    
    dtt <- sprintf("%s %04d", d, h)
    as.POSIXlt(dtt, format="%Y-%m-%d %H%M")
    [1] "2010-07-02 08:35:00"
    

    字符串"%s %04d" 告诉sprintf 将d 连接为字符串(%s),将h 连接为长度为4 的固定宽度字符串,前导零(%04d)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-16
      • 1970-01-01
      相关资源
      最近更新 更多