我需要将“日期”列转换为日期格式,但我获得了NA值 任何建议请
str(dli)
'data.frame': 39474 obs. of 4 variables:
$ Regions: chr "Tiruchengode" "Tiruchengode" "Tiruchengode" "Tiruchengode" ...
$ Item : chr "TRACTOR TT35-4WD" "TRACTOR TT35-4WD" "TRACTOR TT35-4WD" "TRACTOR TT35-4WD" ...
$ Dates : chr "2016-01-01" "2016-01-02" "2016-01-03" "2016-01-04" ...
$ Data : int 2 7 6 0 6 6 1 6 0 4 ...
trac <- as.Date(dli$Dates, "%d/%m/%Y")
我使用上面的命令来执行输出
我的输出是
trac <- as.Date(dli$Dates, "%d/%m/%Y")
trac
[1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[30] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[59] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[88] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[117] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[146] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[175] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
答案 0 :(得分:0)
在用于将字符转换为日期的函数中,您指定的日期格式与日期格式的日期格式不对应。
在假人data.frame
dli <- data.frame(Dates = c("2016-01-01", "2016-01-02",
"2016-01-03", "2016-01-04"))
将格式更改为"%Y-%m-%d"
会返回:
trac <- as.Date(dli$Dates, format = "%Y-%m-%d")
trac
[1] "2016-01-01" "2016-01-02" "2016-01-03" "2016-01-04"
第二种选择是使用lubridate
,这样可以更轻松地处理日期:
library(lubridate)
您可以使用功能ymd()
(即年月日)来转换您的日期。它会自动推断格式。
trac <- ymd(dli$Dates)
trac
[1] "2016-01-01" "2016-01-02" "2016-01-03" "2016-01-04"
答案 1 :(得分:0)
日期已经采用Date
格式,即%Y-%m-%d
。因此,我们只需要应用as.Date
(从之前发布的评论中发布)
as.Date(dli$Dates)