我有一个带有日期列的数据框,我需要将其转换为 R 识别为日期的格式。
> dataframe
Date Sum
1 06/09/15 2.51
2 06/09/15 3.75
3 06/09/15 3.50
...
我首先使用以下方法对其进行了转换sapply
:
> dataframe$Date2<-sapply(dataframe$Date,as.Date,format="%m/%d/%y")
这将日期返回为从 1970 年 1 月 1 日开始的天数:
> dataframe
Date Sum Date2
1 06/09/15 2.51 16595
2 06/09/15 3.75 16595
3 06/09/15 3.50 16595
...
后来我尝试在没有的情况下转换它sapply
:
> dataframe$Date3<-as.Date(dataframe$Date,format="%m/%m/%d")
这反过来又返回
> dataframe
Date Sum Date2 Date3
1 06/09/15 2.51 16595 2015-09-15
2 06/09/15 3.75 16595 2015-09-15
3 06/09/15 3.50 16595 2015-09-15
...
这是两种截然不同的、明显不兼容的格式。为什么sapply
返回一种格式(自起源以来的天数),而没有它返回另一种格式(%Y-%m-%d)?
现在,显然我可以忽略一种方法并继续使用sapply
,as.Date
但我想知道为什么它的读取方式不同。我也在努力将 Date3 向量转换为 Date2 格式。
因此,我有两个问题:
- 为什么
sapply
提供不同的日期格式? - 如何将日期可识别的序列(例如 mm/dd/yyyy)转换为自 1970 年 1 月 1 日以来的天数?