用数字代替月份缩写

时间:2019-12-13 03:14:38

标签: r

例如:df$Date

SN              Date
1        07-Mar-2019
2        06-Feb-2019

如何设置条件以替换df $ Date中的值“ Mar” =“ 03”和“ Feb” =“ 02”?

这样输出将是:

SN         Date
 1   07-03-2019
 2   06-02-2019

有人可以帮忙吗?谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用as.Date。您可以在?strptime

上了解不同的格式
df$Date <- as.Date(df$Date, "%d-%b-%Y")
df
#  SN       Date
#1  1 2019-03-07
#2  2 2019-02-06

或者如果您不想担心格式,请使用dmy中的lubridate

df$Date <- lubridate::dmy(df$Date)

或者使用anydate中的anytime函数。

df$Date <- anytime::anydate(df$Date)

要获得与所示格式完全相同的输出,我们可以

df$Date <- format(as.Date(df$Date, "%d-%b-%Y"), "%d-%m-%Y")
df
#  SN       Date
#1  1 07-03-2019
#2  2 06-02-2019

数据

df <- structure(list(SN = 1:2, Date = structure(2:1, .Label = c("06-Feb-2019", 
"07-Mar-2019"), class = "factor")), class = "data.frame", row.names = c(NA, -2L))