【问题标题】:R: creating xts object changes the time formatR:创建 xts 对象更改时间格式
【发布时间】:2011-05-12 01:27:47
【问题描述】:
> str(s)
 POSIXct[1:6630], format: "2011-02-14 09:31:00" "2011-02-14 09:32:00" "2011-02-14 09:33:00" "2011-02-14 09:34:00" ...
> head(s)
[1] "2011-02-14 09:31:00 EST" "2011-02-14 09:32:00 EST" "2011-02-14 09:33:00 EST" "2011-02-14 09:34:00 EST"
[5] "2011-02-14 09:35:00 EST" "2011-02-14 09:36:00 EST"
> 


> head(AMKR)
  date_holding time_holding close
1   2011-02-14     09:31:00  7.66
2   2011-02-14     09:32:00  7.58
3   2011-02-14     09:33:00  7.54
4   2011-02-14     09:34:00  7.54
5   2011-02-14     09:35:00  7.56
6   2011-02-14     09:36:00  7.54

> as.xts(AMKR[,-1:-2], s) -> newAMKR
> head(newAMKR)
                    [,1]
2011-02-14 00:00:00 7.74
2011-02-14 00:01:00 7.74
2011-02-14 00:02:00 7.74
2011-02-14 00:03:00 7.74
2011-02-14 00:04:00 7.74
2011-02-14 00:05:00 7.73

如您所见,时间已经改变。

代码“AMKR”是从位于同一台机器上的 mySQL 数据库中提取的。

如果有人能指出我正确的方向,将不胜感激。

================================================ =

更新:有几个问题。

1) 将数据上传到 mySQL 时,时间格式设置为 %h:%i:%s,而它本应设置为 %H:%i:%s(注意大写 H )。

2) 我删除了 mySQL 中的数据并使用 H 重新上传。现在我得到了 12:00:00 的时间,因为报价发生在下午 12 点,但它显示为.xts 将其解释为上午 12 点,因此在 12:00:00 和 04:00:00 之间发生的所有报价都被解释为发生在上午

我想知道为什么 mySQL 没有像我在 LOAD DATA 查询中使用 %H 那样将时间转换为 24 小时制格式。我想知道是否有办法通过 as.POSIXct 强制更改 R。调查中……

【问题讨论】:

  • 您没有提供足够的信息来准确回答问题。请提供一个可重现的例子。
  • 我无法重现此行为。您是否注意到 newAMKR 的值不是 AMKR 中的值?我相信您的会话中有些东西不是您认为的那样。
  • 感谢 Joris 指出这一点。这让我发现时间格式是问题的根源。我目前正在调查。感谢您的帮助。
  • 我发现了问题所在。我需要使用以下时间格式将数据上传到 mySQL:'%h:%i:%s %p'。我之前省略了 %p。此外,当您使用 %p 时,您需要使用小写 %h
  • 你应该把它作为答案发布并接受它。

标签: r xts posixct


【解决方案1】:

我发现了问题所在。我需要使用以下时间格式将数据上传到 mySQL:'%h:%i:%s %p'。我之前忽略了 %p。此外,当您使用 %p 时,您需要使用小写的 %h。

【讨论】:

    猜你喜欢
    • 2018-06-08
    • 1970-01-01
    • 1970-01-01
    • 2011-11-12
    • 1970-01-01
    • 2016-06-14
    • 2014-11-14
    • 2016-04-18
    • 2018-02-28
    相关资源
    最近更新 更多