在将字符串转换为POSIX对象方面遇到怪异的问题

时间:2019-01-07 21:11:48

标签: r datetime posix

我有一个日期时间向量,存储为格式为'm / d / YH:M'的字符串,例如:'1/3/2008 12:45',称为datetime

我正在使用以下代码行对其进行转换:

datetime = as.POSIXct(datetime, format = '%m/%d/%Y %H:%M', tz = 'America/Los_Angeles')

此方法适用于大多数方法,但是某些格式相同的方法会失败并返回NA。

在测试时,我发现以下行成功运行:

as.POSIXct('03/13/2016 01:45', format = '%m/%d/%Y %H:%M', tz = 'America/Los_Angeles')

但是当我将小时位置的数字更改为“ 2”时,它失败并返回了NA:

as.POSIXct('03/13/2016 02:45', format = '%m/%d/%Y %H:%M', tz = 'America/Los_Angeles')

但是,as.POSIClt可以同时使用两个字符串。此外,在R(https://rdrr.io/snippets/)的浏览器实例中运行此代码也没有问题。

因为as.POSIXlt似乎可以工作,所以我尝试仅使用它并继续前进。不幸的是,由于dplyr中似乎不支持POSIXlt,而且,当我在其他正在使用的dplyr函数之外使用它时,一些成功以POSIXlt格式转换的字符串报告为NA,即使它们不是NA:

NA and not NA at the same time

如果任何人都知道如何解决此问题,或以其他方式转换不会出现这些问题的时间代码,最好在dplyr管道函数中使用,那真是太棒了。

0 个答案:

没有答案