首页 文章

当字符串缩写为工作日和月日时,如何将字符串转换为R中的POSIX

提问于
浏览
1

我正在尝试将字符串转换为POSIXlt格式 . 字符串定义如下:

x <- "Mon Jul 13 14:28:42 2015"

我使用以下格式规范进行日期和时间转换:

dateformat <- "%a %b %d %H:%M:%S %Y"

  • %a:此平台上当前语言环境中的缩写工作日名称

  • %b:此平台上当前区域设置中的缩写月份名称

  • %d:十进制数字的月份日期(01-31)

  • %H:十进制小时数(00-23)

  • %M:十进制数分钟(00-59)

  • %S:秒为整数(00-61)

  • %Y:世纪的年份

我的区域设置是:

> Sys.getlocale()
[1] "LC_COLLATE=English_United States.1252; LC_CTYPE=English_United States.1252; 
LC_MONETARY=English_United States.1252; LC_NUMERIC=C; LC_TIME=English_United States.1252"

我的会话信息是:

sessionInfo()  
R version 3.2.2 (2015-08-14)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 8 x64 (build 9200)

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252    LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                           LC_TIME=English_United States.1252    

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

other attached packages:
[1] lubridate_1.5.0             dplyr_0.4.3                 rosetta_0.0.1               plyr_1.8.3                 
[5] scanEngineParser_0.0.1.9001

loaded via a namespace (and not attached):
 [1] magrittr_1.5   R6_2.1.1       assertthat_0.1 parallel_3.2.2 DBI_0.3.1      tools_3.2.2    Rcpp_0.12.2    stringi_1.0-1 
 [9] stringr_1.0.0  XML_3.98-1.3

一切似乎都没问题,但我得到NA结果:

  • strptime:
    > strptime(x = x, format = dateformat) [1] NA

  • as.Date:
    >as.Date(x = x, format = dateformat) [1] NA

  • 与:as.POSIXlt,as.POSIXct,strftime,...

我认为这个问题是工作日的缩写,所以我查了一下:

> format(Sys.time(), format = dateformat) [1] "Tue Dec 29 18:38:56 2015"

即使我使用格式生成的字符串,它也会返回NA:

> strptime(x = format(Sys.time(), format = dateformat), format = dateformat) [1] NA

你知道发生了什么吗?
我怎么能把这个字符串转换为POSIXlt?

1 回答

  • 0

    我重新启动了RStudio,但问题仍然存在 .
    我重新启动了SO(Windows 10),现在它正常工作......问题可能与SO有关 .

    学过的知识...

相关问题