使用 R 将日期格式的字符串列表/向量转换为 posix 日期类

Posted

技术标签:

【中文标题】使用 R 将日期格式的字符串列表/向量转换为 posix 日期类【英文标题】:Convert list/vector of strings with date format into posix date class with R 【发布时间】: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 是向量列表(而不是列表列表)。 【参考方案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了解更多详情。

【讨论】:

以上是关于使用 R 将日期格式的字符串列表/向量转换为 posix 日期类的主要内容,如果未能解决你的问题,请参考以下文章

R语言日期格式符号as.Date函数字符串数据转换为日期数据格式as.Date函数将dataframe的字符串(character)数据列转换为日期(date)格式数据列

在R中将日期转换为特定格式的字符

如何将矩阵转换为 R 中的列向量列表?

在 R 中格式化具有不一致日期格式的向量

如何将矩阵转换为R中的列向量列表?

如何将字符串转换为日期时间格式