无法将双精度格式的列表格式化为日期类型

时间:2019-05-03 20:42:02

标签: date r

>library(eeptools)
>library(lubridate)

> a = c("2019-06-09", "2006-05-04")

> is.Date(a)
[1] FALSE
> 
> as.Date(a, "%Y-%m-%d")
[1] "2019-06-09" "2006-05-04"
>
> typeof(a)
[1] "character"
> 
> is.Date(a)
[1] FALSE
> 
> class(a)
[1] "character"

我试图将一个字符列表转换为Date,但是由于某些原因,看来as.Date()无法正常工作。谁能告诉我我做错了什么以及如何将列表类型转换为日期。

1 个答案:

答案 0 :(得分:-1)

如果您尝试将字符列表中的仅一个元素转换为日期,则该列表将不接受。您必须为整个列表分配相同的数据类型。假设我创建了一个列表:

Dataset$dob <- c("1986-10-17", "1987-10-17")

现在我可以将其转换为日期了,

Dataset$dob <- as.Date(Dataset$dob)
> class(Dataset$dob[1])
[1] "Date"

或者出于任何原因,如果您只想将第一个元素转换为日期:

dob1 <- as.Date(Dataset$dob[1])
> class(dob1)
[1] "Date"

此外,如果您只是想测试代码,则逻辑将是

> is.Date(as.Date(Dataset$dob[1]))
[1] TRUE

希望这会有所帮助!