【发布时间】:2019-02-22 21:33:44
【问题描述】:
我有一个包含大约 53,000 行的数据集,其中一列测量了进行观察的日期和时间。在数据收集过程中,不知何故,日期的格式从 mm/dd/year 转换为 dd/mm/year,这种情况发生了好几次。但是,我知道每个错误发生的确切行,所以我想知道是否有一种有效的方法可以将它们全部更改为单一格式(我希望它们以 mm/dd/year 为单位,因为这是大多数观察结果在)。
这是我正在谈论的问题的一个示例,从 dd/mm/year 到 mm/dd/year:
data.test = data.frame(Date = c("16/11/2017 8:45 AM", "16/11/2017 9:00 AM",
"11/16/2017 9:15 AM", "11/16/2017 9:30 AM"), Observed = c(100, 23, 291, 30))
data.test
Date Observed
16/11/2017 8:45 AM 100
16/11/2017 9:00 AM 23
11/16/2017 9:15 AM 291
11/16/2017 9:30 AM 30
在我的数据集中,日期是字符,而其余行是数字。
【问题讨论】:
-
您提到您知道格式已被切换的行。该信息是否可用作标志,您可以根据该标志知道日期是否已切换?
-
我不确定你的意思,但是收集数据的人给出了发生这种转变的日期,我在数据集中找到了它们。我可以轻松地在发生此切换的行上添加具有某种虚拟标记的另一列。
-
有两种方法。您可以使用标志(如果可用)来更改日期格式的一种方法,另一种方法可能是检查日期在 mm-dd-yyyy 中是否有效,然后使用它,否则使用 dd-mm-yyyy 格式。
lubridate提供了一个智能功能来帮助第二个选项。
标签: r date time-series