【问题标题】:Convert list/vector of strings with date format into posix date class with R使用 R 将日期格式的字符串列表/向量转换为 posix 日期类
【发布时间】:2012-02-19 19:53:59
【问题描述】:

我有一个我们的日期格式的字符串列表,我想将其转换为可以用 R 操作的 posix 日期列表,我该怎么做?

这是我所拥有的,但我最终得到了一个列表列表:

 a <- c("2009.01.01 00:00:00", "2009.01.01 00:00:00")

z <- lapply(a,function(x){strptime(x, "%Y.%m.%d %H:%M:%S")})

> z <- lapply(a,function(x){strptime(x, "%Y.%m.%d %H:%M:%S")})
> summary(z)
     Length Class   Mode
[1,] 1      POSIXlt list
[2,] 1      POSIXlt list

【问题讨论】:

  • 请注意,a 不是一个列表,它是一个向量(在 R 的术语中)。 strptime 是矢量化的(请参阅 joran 的回答),这意味着它适用于该矢量的所有实例。如果您确实有一个列表,那么 lapply 将是合适的。另请注意,z 是向量列表(而不是列表列表)。

标签: r statistics timestamp


【解决方案1】:

strptime 被矢量化了:

a <- c("2009.01.01 12:20:10", "2009.01.01 04:12:14")
> out <- strptime(a, "%Y.%m.%d %H:%M:%S")
> str(out)
 POSIXlt[1:2], format: "2009-01-01 12:20:10" "2009-01-01 04:12:14"

【讨论】:

    【解决方案2】:

    你可以使用 c() 函数:

    do.call(c,z)
    

    您可以查看doc了解更多详情。

    【讨论】:

      猜你喜欢
      • 2021-11-11
      • 2023-03-15
      • 2023-03-26
      • 2021-03-07
      • 1970-01-01
      • 2013-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多