0

我想用 as.Date 将一整列转换为日期格式。

str(fluesse)
'data.frame':   1049 obs. of  28 variables:
$ Datum                      : Date, format: NA NA NA ...

日期格式如下:

07.08.14

这是我尝试过的

as.Date(as.character("07.08.14"), format="%d.%m.%y")
[1] "2014-08-07"
as.Date(as.character(fluesse$Datum), format = "%d.%m.%y")
[1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA

我总是得到 NA 的条目fluesse$Datum

当我尝试检查它有什么课程时,我给了我

class("fluesse$Datum")
[1] "character"

当我尝试as.character在 data.frame 上使用时,我错过了什么?

4

2 回答 2

2

好吧,你的 fluesse$Datumin已经str(.) "Date"所有 NA的班级了。然后在下面,你展示了另一个fluesse$Datum“字符”类,所以 as.character(.)不会有效果。

也许您只是通过调用两个版本fluesse而不是说d.fl.1and d.fl.2 (一种约定喜欢用首字母来表示数据集d.)而使自己感到困惑?

于 2015-05-26T09:22:54.500 回答
1

对于所有日期转换...尝试“lubridate”包总是有帮助的。dmy_hms、mdy_hms 等函数有助于解析几乎任何日期格式。只需安装软件包并使用它。我想你会自己弄清楚。你可以试试这个:

> library(lubridate)
> x <- "07.08.14"
> x <- dmy(x)
> as.Date(x, format="%d.%m.%y")
[1] "2014-08-07"

代替“x”,您可以放置​​日期向量并尝试。

另一种可能性是,数据尚未从源中读取,因此日期向量上的 class() 给出字符“NA”。

于 2015-05-26T09:31:54.463 回答