as.Date转换数据框中的日期

时间:2015-05-26 08:53:47

标签: r date as.date

我想将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

我总是为fluesse$Datum

中的条目获得NA

当我试着查看它给我的课程时

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

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

2 个答案:

答案 0 :(得分:2)

嗯,[bin]$x=`/path/thirdparty/python/2.7/bin/python2.7 -V` Python 2.7.8 [bin]$echo x 中的fluesse$Datum 已经属于str(.)类,并且包含所有NAs。 然后在下面,您将显示另一个"Date",它是类“字符”,所以 fluesse$Datum不起作用。

也许您只是通过调用两个版本as.character(.)而不是说fluessed.fl.1来混淆自己(一个惯例喜欢用初始d.fl.2表示数据集)?

答案 1 :(得分: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”。