我有一个日期时间向量,存储为格式为'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:
如果任何人都知道如何解决此问题,或以其他方式转换不会出现这些问题的时间代码,最好在dplyr管道函数中使用,那真是太棒了。