如何将因子列转换为r中数据框中的日期
how to convert factor column into date in data frame in r
我在 r 中有一个具有以下结构的数据框:
TERMINAL_ID ACTION_DATE ACC_AMOUNT
1009162 02-JAN-18 14.30
1009162 02-JAN-18 21.45
和 'action_date' 的 class 是因素,我想将其转换为日期。
我试过这段代码但没有成功
dataf <- as.Date(as.character(data$ACTION_DATE),
format = "%d-%y-%Y")
fdate=as.POSIXlt(data$ACTION_DATE, "%d-%b-%y")
as.Date('02-JAN-18', format = '%d-%B-%y')
[1] "2018-01-02"
或使用 lubridate
library(lubridate)
dmy("02-Jan-17")
这会将您的角色以 d(ays)m(onth)y(ear) 格式保存日期。
我已经用您提到的日期格式创建了矢量 x
。使用 lubridate
包,解决方案非常简单。
x<- as.factor(c("02-JAN-18", "03-JAN-19", NA, "abc"))
lubridate::dmy(x)
#> Warning: 1 failed to parse.
#> [1] "2018-01-02" "2019-01-03" NA NA
由 reprex package (v0.2.1)
创建于 2018-10-01
我在 r 中有一个具有以下结构的数据框:
TERMINAL_ID ACTION_DATE ACC_AMOUNT
1009162 02-JAN-18 14.30
1009162 02-JAN-18 21.45
和 'action_date' 的 class 是因素,我想将其转换为日期。 我试过这段代码但没有成功
dataf <- as.Date(as.character(data$ACTION_DATE),
format = "%d-%y-%Y")
fdate=as.POSIXlt(data$ACTION_DATE, "%d-%b-%y")
as.Date('02-JAN-18', format = '%d-%B-%y')
[1] "2018-01-02"
或使用 lubridate
library(lubridate)
dmy("02-Jan-17")
这会将您的角色以 d(ays)m(onth)y(ear) 格式保存日期。
我已经用您提到的日期格式创建了矢量 x
。使用 lubridate
包,解决方案非常简单。
x<- as.factor(c("02-JAN-18", "03-JAN-19", NA, "abc"))
lubridate::dmy(x)
#> Warning: 1 failed to parse.
#> [1] "2018-01-02" "2019-01-03" NA NA
由 reprex package (v0.2.1)
创建于 2018-10-01