【发布时间】:2016-03-27 03:23:37
【问题描述】:
有时给我的数据集有两种不同的日期格式,但公共变量必须连接到一个数据框中。多年来,我尝试了各种解决方案来解决这个工作流程的麻烦。现在我一直在使用 lubridate,似乎很多这些问题都很容易解决。但是,我遇到了一些对我来说似乎很奇怪的行为,尽管我认为有一个很好的解释超出了我的范围。假设我得到了一个具有不同日期格式的数据集,我将它们加入到一个数据框中。这个数据框看起来像这样:
library(ludridate)
library(dplyr)
df<-data.frame(Lab=c("A","B"),DATE=c("12/15/15","12/15/2013")); df
我想使用 lubridate 将此数据转换为日期格式。但是,以下内容的格式不一致:
df %>%
mutate(mdy(DATE))
...而是创建一个 0015 日期。如果我只过滤实验室“A”:
df %>%
filter(Lab=="A") %>%
mutate(mdy(DATE))
...甚至是 group_by 实验室:
df %>%
group_by(Lab) %>%
mutate(mdy(DATE))
然后我得到所需的年份格式。这是 lubridate 系列日期格式化函数的正确行为吗?有没有更好的方法来完成我正在做的事情?我确信一列中有多种日期格式是一种相对常见(且令人讨厌)的现象。
提前致谢。
【问题讨论】:
-
This SO question 可能会有所帮助。
-
我认为我的问题是独一无二的,因为相同的 lubridate 命令适用于两种情况 - 两位数年份和四位数年份。