使用POSIXct时,xts无法搜索没有时间戳的日期

时间:2016-10-07 09:53:22

标签: r xts

我创建了以下设置。最终的结果是xts所在的索引 格式为as.POSIXct,包括日期和时间。

我的问题是如何在索引中搜索日期, 在搜索中排除时间戳?是否有另一种方法可以在搜索独家日期之间跳转而无需输入时间?

这是我的代码:

# create a set of test data to be used
d <- as.POSIXct(c("2014/10/06 06:30:00", "2015/02/02 12:27:00",
                  "2015/02/05 21:27:00", "2016/06/12 14:21:00"))
o = c(98.00, 97.67, 98.00, 98.10) # for "open" data
h = c(99.71, 98.97, 99.71, 99.41) # for "high" data
l = c(96.81, 96.86, 96.81, 97.70) # for "low" data
c = c(97.67, 98.67, 97.67, 98.83) # for "close" data
v = c(1000, 22000, 1000, 50000) # for "volume" data
a = c(1000, 22000, 1000, 50000) # for "adjusted" data

# create a dataframe
mydf1 <- data.frame("date" = d, "open" = o, "high" = h, "low" = l,
"close" = c, "volume" = v, "adjusted" = a)

# create an xts based on dataframe mydf1
myxts1 <- xts(mydf1[,-1], order.by = mydf1$date)

此命令不会返回任何结果。

myxts1[as.POSIXct("2014-10-06")]

...同时所有这些命令都有效,表明xts索引 返回结果。

first(myxts1, "year")
last(myxts1, "year")
myxts1[as.POSIXct("2014-10-06 06:30:00")]
window(myxts1, start = as.POSIXct("2015-02-02 12:27:00"),
       end = as.POSIXct("2015-02-05 21:27:00"))

1 个答案:

答案 0 :(得分:1)

您想要使用

myxts1["2014-10-06"]

如果您提供POSIXct对象,则xts会尝试进行完全匹配,在这种情况下它不会找到。