首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >chron到xts -保留日期-时间格式

chron到xts -保留日期-时间格式
EN

Stack Overflow用户
提问于 2013-11-11 14:19:40
回答 1查看 1.8K关注 0票数 1

我有一个数据框架data,如下所示:

代码语言:javascript
复制
dim(data)
# [1] 66955      2
library(chron)
data <- structure(list(`Date-Time` = structure(c(11320.6592476852,
  11320.6661921296, 11324.3958564815, 11324.4022569444),
  format = structure(c("y/m/d", "h:m:s"), .Names = c("dates", "times")),
  origin = structure(c(1, 1, 1970), .Names = c("month", "day", "year")),
  class = c("chron", "dates", "times")), Price = c(14.8125, 14.875,
  14.9375, 14.9375)), .Names = c("Date-Time", "Price"),
  row.names = 18620:18623, class = "data.frame")

data的第一列是"chron“级的”日期“”时间“。日期时间格式为(yy/mm/dd :m:s).我试图将data[,2]转换为xts对象,以便使用函数makeReturns

我试过:

代码语言:javascript
复制
library(xts)
as.xts(data[,2] , order.by=data[,1], format=c(dates="y/m/d", times="h:m:s"))

但是,这给了我以下内容(对于上面的行):

代码语言:javascript
复制
                       [,1]
(NA NA)             14.8125
(NA NA)             14.8750
(01/01/02 09:30:02) 14.9375
(01/01/02 09:39:15) 14.9375

也就是说,它不承认前两行(日期时间格式(00/12/29 15:49:19)和(00/12/29 15:59:19)为yy/mm/dd (和h:m:s)。事实上,在前两行,年份为"00“(2000),而在第3和第4行,年份为"01”(2001),由他转换,但作为一天或一个月。

我如何确保所有的东西都被转换成原来的格式不改变呢?我在format=" "中尝试过几种变体,但都没有效果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-11 14:48:23

chron似乎没有as.POSIXct方法,默认的as.POSIXct方法可能没有按您希望的方式处理时区,因此您需要将data的第一列转换为字符,然后强制使用POSIXct

代码语言:javascript
复制
> xts(data[,2], as.POSIXct(as.character(data[,1]), format="(%y/%m/%d %H:%M:%S)"))
                       [,1]
2000-12-29 15:49:19 14.8125
2000-12-29 15:59:19 14.8750
2001-01-02 09:30:02 14.9375
2001-01-02 09:39:15 14.9375
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19908584

复制
相关文章

相似问题

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