R 帮助将 char 转换为 POSIXlt
R help converting char to POSIXlt
我在将 char
data.frame 转换为 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"
我在将 char
data.frame 转换为 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"