设置日期的标准格式
Set standard format for Date
我有table,
>dt
ID Date
001 13-Jan-2016
002 2016-01-10
003 15-Jan-2016
004 2016-01-09
005 2016-01-11
而且,我想让我的 table 像这样
>dt
ID Date
004 09-Jan-2016
002 10-Jan-2016
005 11-Jan-2016
001 13-Jan-2016
003 15-Jan-2016
我想为 Date 变量设置默认值并使其有序。我应该怎么办?
谢谢
如果您正好有显示的两种格式,则可以使用 grepl
查找字母,然后使用 ifelse
根据结果传递 as.Date
不同的格式:
as.Date(dt$Date, ifelse(grepl('[a-z]', dt$Date), '%d-%b-%Y', '%Y-%m-%d'))
# [1] "2016-01-13" "2016-01-10" "2016-01-15" "2016-01-09" "2016-01-11"
如果覆盖dt$Date
,可以用order
排序:
dt$Date <- as.Date(dt$Date, ifelse(grepl('[a-z]', dt$Date), '%d-%b-%Y', '%Y-%m-%d'))
dt[order(dt$Date),]
# ID Date
# 4 004 2016-01-09
# 2 002 2016-01-10
# 5 005 2016-01-11
# 1 001 2016-01-13
# 3 003 2016-01-15
我有table,
>dt
ID Date
001 13-Jan-2016
002 2016-01-10
003 15-Jan-2016
004 2016-01-09
005 2016-01-11
而且,我想让我的 table 像这样
>dt
ID Date
004 09-Jan-2016
002 10-Jan-2016
005 11-Jan-2016
001 13-Jan-2016
003 15-Jan-2016
我想为 Date 变量设置默认值并使其有序。我应该怎么办? 谢谢
如果您正好有显示的两种格式,则可以使用 grepl
查找字母,然后使用 ifelse
根据结果传递 as.Date
不同的格式:
as.Date(dt$Date, ifelse(grepl('[a-z]', dt$Date), '%d-%b-%Y', '%Y-%m-%d'))
# [1] "2016-01-13" "2016-01-10" "2016-01-15" "2016-01-09" "2016-01-11"
如果覆盖dt$Date
,可以用order
排序:
dt$Date <- as.Date(dt$Date, ifelse(grepl('[a-z]', dt$Date), '%d-%b-%Y', '%Y-%m-%d'))
dt[order(dt$Date),]
# ID Date
# 4 004 2016-01-09
# 2 002 2016-01-10
# 5 005 2016-01-11
# 1 001 2016-01-13
# 3 003 2016-01-15