r中的向量子集

r中的向量子集,r,date,vector,subset,R,Date,Vector,Subset,我试图用一个向量来子集OHLC小时数据的xts对象 如果我自己用下面的命令创建向量 lookup = c("2012-01-12", "2012-01-31", "2012-03-05", "2012-03-19") testdfx[lookup] testdfx[lookup] 我得到了正确的显示数据,显示了与向量中的日期(00:00到23:00)匹配的所有小时数 > head(testdfx[lookup]) open high

我试图用一个向量来子集OHLC小时数据的xts对象

如果我自己用下面的命令创建向量

lookup = c("2012-01-12", "2012-01-31", "2012-03-05", "2012-03-19")
testdfx[lookup]
testdfx[lookup]
我得到了正确的显示数据,显示了与向量中的日期(00:00到23:00)匹配的所有小时数

> head(testdfx[lookup])
                       open    high     low   close
2012-01-12 00:00:00 1.27081 1.27217 1.27063 1.27211
2012-01-12 01:00:00 1.27212 1.27216 1.27089 1.27119
2012-01-12 02:00:00 1.27118 1.27166 1.27017 1.27133
2012-01-12 03:00:00 1.27134 1.27272 1.27133 1.27261
2012-01-12 04:00:00 1.27260 1.27262 1.27141 1.27183
2012-01-12 05:00:00 1.27183 1.27230 1.27145 1.27165

> tail(testdfx[lookup])
                       open    high     low   close
2012-03-19 18:00:00 1.32451 1.32554 1.32386 1.32414
2012-03-19 19:00:00 1.32417 1.32465 1.32331 1.32372
2012-03-19 20:00:00 1.32373 1.32415 1.32340 1.32372
2012-03-19 21:00:00 1.32373 1.32461 1.32366 1.32376
2012-03-19 22:00:00 1.32377 1.32424 1.32359 1.32366
2012-03-19 23:00:00 1.32364 1.32406 1.32333 1.32336
但是,当我从对象中提取日期并创建用于子集设置的向量时,我的子集中仅显示00:00-19:00的小时数

> head(testdfx[dates])
                      open   high    low  close
2007-01-05 00:00:00 1.3092 1.3093 1.3085 1.3088
2007-01-05 01:00:00 1.3087 1.3092 1.3075 1.3078
2007-01-05 02:00:00 1.3079 1.3091 1.3078 1.3084
2007-01-05 03:00:00 1.3083 1.3084 1.3073 1.3074
2007-01-05 04:00:00 1.3073 1.3080 1.3061 1.3071
2007-01-05 05:00:00 1.3070 1.3072 1.3064 1.3069

> tail(euro[nfp.releases])
                       open    high     low   close
2014-01-10 14:00:00 1.35892 1.36625 1.35728 1.36366
2014-01-10 15:00:00 1.36365 1.36784 1.36241 1.36743
2014-01-10 16:00:00 1.36742 1.36866 1.36693 1.36719
2014-01-10 17:00:00 1.36720 1.36752 1.36579 1.36617
2014-01-10 18:00:00 1.36617 1.36663 1.36559 1.36624
2014-01-10 19:00:00 1.36630 1.36717 1.36585 1.36702
我比较了两个包含require日期的对象,它们看起来是相同的

> class(lookup)
[1] "character"
> class(nfp.releases)
[1] "character"
> str(lookup)
 chr [1:4] "2012-01-12" "2012-01-31" "2012-03-05" "2012-03-19"
> str(nfp.releases)
 chr [1:86] "2014-02-07" "2014-01-10" "2013-12-06" "2013-11-08" ..
我是R新手,但在过去的3天里,我已经尝试了所有方法来让它工作。如果我不能这样做,我将不得不手动创建一个变量,但由于它有86个日期,这可能需要一些时间


提前谢谢。

我无法重现您的问题

lookup = c("2012-01-12", "2012-01-31", "2012-03-05", "2012-03-19")

time_index <- seq(from = as.POSIXct("2012-01-01 07:00"),  to = as.POSIXct("2012-05-17 18:00"), by = "hour")

set.seed(1)

value <- matrix(rnorm(n = 4*length(time_index)),length(time_index),4)

testdfx <- xts(value, order.by = time_index)

testdfx[lookup[1]]

testdfx["2012-01-12"]
lookup=c(“2012-01-12”、“2012-01-31”、“2012-03-05”、“2012-03-19”)

时间索引感谢大家的回复,我真的以为我已经删除了这个帖子,但显然没有

上述案例中的问题是在3'左右从计算机上发现的。当查看数据时,我只对周五感兴趣,这也意味着外汇市场将在周末关闭

很抱歉浪费了您的时间,管理员请删除。

a)您是如何创建
欧元的?b) 您是否知道,在原始的
euro
数据中,日期
2014-01-10
存在超过19:00:00的时间?