R帮助将char转换为POSIXlt



我在将char数据帧转换为POSIXlt时遇到了很多问题。这是我的str输出:

'data.frame':   5846 obs. of  5 variables:
 $ date   : Factor w/ 184 levels "1/1/2015","1/10/2015",..: 31 31 31 31 31 31 31 31 31 31 ...
 $ time   : Factor w/ 680 levels "1:00:00","1:01:00",..: 63 72 72 73 73 75 75 75 76 76 ...
 $ morning: Factor w/ 2 levels "AM","PM": 2 2 2 2 2 2 2 2 2 2 ...
 $ sender : Factor w/ 2 levels "Judith:","Saul": 2 1 1 2 2 1 2 2 1 1 ...
 $ iso    : chr  "1/8/2014 10:10:00 PM" "1/8/2014 10:19:00 PM" "1/8/2014 10:19:00 PM" "1/8/2014 10:20:00 PM" ..

我想使用

将"iso"转换为POSIXlt
dat$iso <- strptime(dat$iso, "%d/%m/%Y %I:%M:%S %p")

但我得到NA作为结果。

在执行

时得到类似的输出
> iso = "1/8/2014 10:19:00 PM"
> strptime(iso,"%d/%m/%Y %I:%M:%S %p")
[1] NA

这是由于我的默认区域设置(fr_FR)不支持%p。将该区域设置更改为"C",可以解决这个问题:

> Sys.setlocale(category = "LC_TIME","C")
> strptime(iso,"%d/%m/%Y %I:%M:%S %p")
[1] "2014-08-01 22:19:00 CEST"

相关内容

  • 没有找到相关文章

最新更新