猿问

strptime,作为.POSIXct和as.Date返回意外的NA。

strptime,作为.POSIXct和as.Date返回意外的NA。

当我试图以下格式解析时间戳时:“清华11月8日15:41:45 2012”,仅限NA会被归还。

我使用的是MacOSX,R2.15.2和RStudio 0.97.237。我的操作系统语言是荷兰语:我想这与它有关。

当我尝试strptimeNA返回:

var <- "Thu Nov 8 15:41:45 2012"strptime(var, "%a %b %d %H:%M:%S %Y")# [1] NA

也没有as.POSIXct工作:

as.POSIXct(var, "%a %b %d %H:%M:%S %Y")# [1] NA

我也试过as.Date在上面的字符串上但是没有%H:%M:%S构成部分:

as.Date("Thu Nov 8 2012", "%a %b %d %Y")# [1] NA

知道我可能做错了什么吗?


白衣非少年
浏览 972回答 3
3回答

RISEBY

处理同样的问题,发现这个解决方案更干净,因为不需要手动更改任何系统设置,因为在lubridate包,您所要做的就是设置参数。locale:date&nbsp;<-&nbsp;c("23.&nbsp;juni&nbsp;2014",&nbsp;"1.&nbsp;november&nbsp;2014",&nbsp;"8.&nbsp;marts&nbsp;2014",&nbsp;"16.&nbsp;juni&nbsp;2014",&nbsp;"12.&nbsp;december&nbsp;2014",&nbsp;"13.&nbsp;august&nbsp;2014")df$date&nbsp;<-&nbsp;dmy(df$Date,&nbsp;locale&nbsp;=&nbsp;"Danish")[1]&nbsp;"2014-06-23"&nbsp;"2014-11-01"&nbsp;"2014-03-08"&nbsp;"2014-06-16"&nbsp;"2014-12-12"&nbsp;"2014-08-13"

翻过高山走不出你

关于“不需要更改任何系统设置。“,请注意locale在lubridate函数只是上述步骤的方便包装:(1)保存当前区域设置,(2)更改区域设置,(3)恢复到原始区域设置。检查代码这里:orig_locale <- Sys.getlocale("LC_TIME"); Sys.setlocale("LC_TIME", locale); on.exit(Sys.setlocale("LC_TIME", orig_locale))
随时随地看视频慕课网APP
我要回答