我在R中有两个日期字符串,两者的格式不同。我如何转换一个日期字符串以与另一个日期字符串保持一致。下面是两种格式的示例,不要关注日期而是关注字符串本身的格式。谢谢!
"Wed Aug 31 14:14:13 2016"
"09/12/2016 10:20 PM EDT"
答案 0 :(得分:2)
有关格式字符串的详细信息,请参阅help(strptime)
:
R> d1 <- as.Date("Wed Aug 31 14:14:13 2016", "%a %b %d %H:%M:%S %Y")
R> d1
[1] "2016-08-31"
R> d2 <- as.Date("09/12/2016 10:20 PM EDT", "%m/%d/%Y %H:%M")
R> d2
[1] "2016-09-12"
R>
将它们解析为Date
个对象后,您可以按照自己喜欢的方式进行格式化。同上Datetime
个对象。
编辑:由于大多数日期格式实际上都是“已知”,您还可以迭代给定的一组并“猜测”。我在RcppBDT中有一些代码(在GitHub上但在CRAN上还没有)处理这个:
R> library(RcppBDT)
R>
R> as.Date(toPOSIXct(c("Wed Aug 31 14:14:13 2016", "09/12/2016 10:20 PM EDT")))
[1] "2016-08-31" "2016-09-12"
R>
答案 1 :(得分:0)
R中的日期起初可能是一个棘手的概念。查看as.Date()函数将字符串转换为日期,并查看stpftime()函数以将日期时间解析为字符串。根据您当前值的格式,其中一个或两个都很有用。
基本上,您最终要做的是解析日期的各个组件以获得所需的内容(例如,日,月,年),但解析因字符串的当前格式而异。很难对这样一个广泛的问题给出明确的答案,但你肯定想要熟悉上述功能。