我在格式化R中的日期列表时遇到了问题。在R中格式化的常规方法(如as.Date或as.POSixct)似乎不工作。格式化非常规日期
我在格式化日期:1012015
使用
as.POSIXct(as.character(data$Start_Date), format = "%m%d%Y")
不给我一个错误,但我的返回日期
"0015-10-12"
因为一个月是不是一个两位数字。 ?
有没有办法更改为正确的日期格式该F
我在格式化R中的日期列表时遇到了问题。在R中格式化的常规方法(如as.Date或as.POSixct)似乎不工作。格式化非常规日期
我在格式化日期:1012015
使用
as.POSIXct(as.character(data$Start_Date), format = "%m%d%Y")
不给我一个错误,但我的返回日期
"0015-10-12"
因为一个月是不是一个两位数字。 ?
有没有办法更改为正确的日期格式该F
的lubridate
包可以在这方面帮助:
lubridate::mdy(1012015)
[1] "2015-01-01"
格式看上去模棱两可,但OP提供了两个提示:
format = "%m%d%Y"
和这仅使用基地R.的%08d
指定为数字格式化为8个字符,在这种情况下使用0填充给出"01012015"
。
as.POSIXct(sprintf("%08d", 1012015), format = "%m%d%Y")
## [1] "2015-01-01 EST"
请注意,如果你没有任何时/分/秒,这将是不容易出错使用"Date"
类,因为微妙随后时间段错误的可能性被消除。
as.Date(sprintf("%08d", 1012015), format = "%m%d%Y")
## [1] "2015-01-01"
是否有任何一般的假设,可向格式,如最后4位数字是始终年第2-4位为月份和日期(如果有的话,是111 11月1日或1月第11) ? – platypus
是的,最后4位数字始终是年份,前2-4位数字是月份和日期。数据是按照时间顺序排列的,但我不确定R是否能够对您的问题作出区分。 –
_什么是正确答案_ – rawr