【发布时间】:2019-05-07 08:57:15
【问题描述】:
需要将数组列从Factor类型转换为Date类型。
首先我尝试随时使用函数来做到这一点:
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")
【问题讨论】:
-
as.Date应该与factor一起使用。请显示实际值。可能是你的格式不对 -
欢迎来到 Stack Overflow!你可能想通读How to make a great R reproducible example。事实上,如果没有看到您的数据,任何人都很难帮助您。请编辑您的问题以包含来自
dput(head(trash8$DMY))的输出,以便我们可以看到格式,正如@akrun 所说。 -
可能您需要更改
as.Date中的format参数 -
format应该是"%d.%m.%y" -
您是否尝试过使用 lubridate 包中的
parse_date_time函数?到目前为止,这个函数在我所有将向量转换为日期的项目中都是最有帮助的。
标签: r