【问题标题】:Trouble with R function POSIXct recognising the time format of my fileR 函数 POSIXct 无法识别我的文件的时间格式
【发布时间】:2019-07-31 20:55:32
【问题描述】:

我想知道为什么这个 R 语句无法解释我的数据集列 Occurred Date / Time 中提供的时间格式?我正在尝试按发生日期/时间列索引 .dataframe 和顺序。

> head (test[,c(0:4)])
# A tibble: 6 x 4
  `Template ID` `Reported Date` `Reported Time` `Occurred Date / Time`
          <int>           <chr>          <time>                 <dttm>
1        124529       1/02/2016        00:32:00    2016-01-31 23:19:20
2        126305       6/02/2016        06:42:00    2016-02-06 05:46:48
3        126921       6/02/2016        12:28:00    2016-02-06 10:22:05
4        127035       9/02/2016        04:26:00    2016-02-09 03:59:58
5        127916      11/02/2016        17:25:00    2016-02-11 16:35:19
6        128340      10/02/2016        10:38:00    2016-02-10 09:33:01

xts(test[, -1], order.by = as.POSIXct(test[,c(4)],format="%d-%m-%Y  %H:%M:%S")) 

Error message;
 > xts(test[, -1], order.by = as.POSIXct(test[,c(4)],format="%d-%m-%Y  %H:%M:%S"))
Error in as.POSIXct.default(test[, c(4)], format = "%d-%m-%Y  %H:%M:%S") : 
  do not know how to convert 'test[, c(4)]' to class “POSIXct”

【问题讨论】:

  • 看看你传递的格式:format="%d-%m-%Y。数据框有%Y-%m-%d。当它是%Y-%m-%d %H:%M:%S 时,不需要格式规范字符串。我将投票结束,因为 这个问题是由无法再复制的问题或简单的印刷错误引起的。虽然类似的问题可能是这里的主题,但这个问题的解决方式不太可能帮助未来的读者
  • 抱歉,Rui,发帖累了我已经尝试过不使用格式。我认为问题源于我在 XTS 函数中引用该列的方式让我分心。在重命名没有空格或斜线的列后,这一切都有效。谢谢

标签: r xts posixct


【解决方案1】:

检查您的列Ocurred Date/Time(例如2016-02-10 09:33:01),格式为“%Y-%m-%d %H:%M:%S”,但您设置了format="%d-%m-%Y %H:%M:%S"

如果您在格式方面遇到问题,anytime 库可能会帮助您:

library(anytime)
anytime("2016-02-10 09:33:01") 

它会尝试猜测你的日期格式!

【讨论】:

  • 谢谢 Jonny,根据我对 Rui 的评论。亲切的问候
猜你喜欢
  • 2017-03-12
  • 1970-01-01
  • 2018-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-13
  • 2013-06-12
  • 1970-01-01
相关资源
最近更新 更多