我在格式化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