0
> 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。正在调查......

4

1 回答 1

1

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

于 2011-05-29T21:16:37.063 回答