使用 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)格式数据列