从“因子”转换为“日期”的问题

时间:2019-05-07 08:57:16

标签: r

需要将数组列从“因子”类型转换为“日期”类型。

首先,我尝试随时使用函数来实现该功能:

library(anytime)
anydate(trash8$DMY)

我与as.Date合作的第二个:

as.Date(trash8$DMY, format="%d-%m-%Y")

第一次尝试和第二次尝试后,我得到一个结果-所有日期都采用格式-NA

   [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
  [27] 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
  [53] 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
  [79] 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
 [105] 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
 [131] 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
 [157] 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
 [183] 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
 [209] 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
 [235] 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

您能帮我理解,我做错了什么吗?或者,也许,您知道其他尝试吗?!

实际值:

dput(head(trash8$DMY))
structure(c(1L, 1L, 1L, 1L, 1L, 1L), .Label = c("01.01.16", "01.02.16", 
"01.02.17", "01.02.18", "01.02.19", "01.03.16", "01.03.17", "01.03.18", 
"01.03.19", "01.04.16", "01.04.17", "01.04.18", "01.04.19", "01.05.16", 
"01.05.17", "01.05.18", "01.05.19", "01.06.16", "01.06.17", "01.06.18", 
"01.07.16", "01.07.17", "01.07.18", "01.08.16", "01.08.17", "01.08.18", 
"01.09.16", "01.09.17", "01.09.18", "01.10.16", "01.10.17", "01.10.18", 
"01.11.16", "01.11.17", "01.11.18", "01.12.16", "01.12.17", "01.12.18", 
"02.01.16", "02.01.17", "02.01.18", "02.01.19", "02.02.16", "02.02.17", 
"02.02.18", "02.02.19", "02.03.16", "02.03.17", "02.03.18", "02.03.19", 
"02.04.16", "02.04.17", "02.04.18", "02.04.19", "02.05.16", "02.05.17", 
"02.05.18", "02.05.19", "02.06.16", "02.06.17", "02.06.18", "02.07.16", 
"02.07.17", "02.07.18", "02.08.16", "02.08.17", "02.08.18", "02.09.16", 
"02.09.17", "02.09.18", "02.10.16", "02.10.17", "02.10.18", "02.11.16", 
"02.11.17", "02.11.18", "02.12.16", "02.12.17", "02.12.18", "03.01.16", 
"03.01.17", "03.01.18", "03.01.19", "03.02.16", "03.02.17", "03.02.18", 
"03.02.19", "03.03.16"), class = "factor")

1 个答案:

答案 0 :(得分:1)

根据dput数据,format应该不同

trash8$DMY <- as.Date(trash8$DMY, format="%d.%m.%y")
trash8$DMY
#[1] "2016-01-01" "2016-01-01" "2016-01-01" "2016-01-01" "2016-01-01" "2016-01-01"
class(trash8$DMY)
#[1] "Date"