首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R strptime (R版本3.2.2 )

R strptime (R版本3.2.2 )
EN

Stack Overflow用户
提问于 2015-08-27 07:13:03
回答 1查看 258关注 0票数 6

在R版本3.0.2中,将strptime用于带有"AM或PM“的文本字符串工作得很好

代码语言:javascript
复制
> strptime("8/25/2015 6:38:41 PM", "%m/%d/%Y %I:%M:%S %p")
[1] "2015-08-25 18:38:41"

我最近升级到了R 3.2.2,现在发现这个推荐返回一个NA:

代码语言:javascript
复制
>strptime("8/25/2015 6:38:41 PM", "%m/%d/%Y %I:%M:%S %p")
[1] NA

这似乎与"PM“有关。如果我删除"PM“并使用下面的命令,它可以工作(但它当然会解释为AM而不是PM):

代码语言:javascript
复制
>strptime("8/25/2015 6:38:41", "%m/%d/%Y %H:%M:%S")
[1] "2015-08-25 06:38:41 NZST"

这里我漏掉了什么?

更新:

感谢大家的评论:

我重新安装了R 3.2.2,但得到了相同的错误

代码语言:javascript
复制
>  strptime("8/25/2015 6:38:41 PM", "%m/%d/%Y %I:%M:%S %p")
[1] NA

这是请求的会话信息

代码语言:javascript
复制
>  sessionInfo()
R version 3.2.2 (2015-08-14)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

locale:
[1] LC_COLLATE=English_New Zealand.1252  LC_CTYPE=English_New Zealand.1252   
[3] LC_MONETARY=English_New Zealand.1252 LC_NUMERIC=C                        
[5] LC_TIME=English_New Zealand.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

然后,我按照相关帖子中的建议更改了语言环境

代码语言:javascript
复制
> Sys.setlocale(category="LC_TIME","C")
[1] "C"
> strptime("8/25/2015 6:38:41 PM", "%m/%d/%Y %I:%M:%S %p")
[1] "2015-08-25 18:38:41 NZST"

它起作用了-但这是否意味着每次我想要将文本时间转换为POSIXct类时,我都必须更改区域设置?

EN

回答 1

Stack Overflow用户

发布于 2017-05-05 17:32:55

试试来自hadleyverse的lubridate

代码语言:javascript
复制
library(lubridate)
arrive <- ymd_hms("2011-06-04 12:00:00", tz = "Pacific/Auckland")
arrive
## [1] "2011-06-04 12:00:00 NZST"

https://cran.r-project.org/web/packages/lubridate/vignettes/lubridate.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32238171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档