2014-03-26 2 views
0

OHLC 시간별 데이터의 xts 오브젝트를 벡터로 서브 세트하려고합니다.r 세트의 벡터로 서브 세트

난 다음 명령을 사용하여 벡터에게 자신을 만드는 경우

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

내가 표시되는 정확한 데이터는 벡터 (23시에서 0시까지의 날짜와 일치하는 모든 시간을 보여줍니다 얻을.

> 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 

필자는 요구 날짜가 포함 된 두 개체를 비교해 보았고 동일하게 보입니다.

> 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 개의 날짜가 있기 때문에 약간의 시간이 걸릴 것입니다.

미리 감사드립니다.

+0

a) 어떻게 유로화를 만들었습니까? b) 원래 '유로'데이터에 '2014-01-10'날짜의 19:00:00 이후의 시간이 있다는 사실을 알고 계십니까? –

답변

0

나는 당신의 문제를 실제로 내가이 스레드를 삭제하지만, 분명하지 않은 생각 응답들에 대한

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"] 
0

감사를 재현 할 수 없습니다.

위의 경우 문제는 컴퓨터에서 약 3 '주변에서 발견되었습니다. 데이터를 살펴볼 때 나는 금요일에만 관심이 있었는데 이는 FX 시장이 주말에 마감된다는 것을 의미합니다.

시간을 낭비해서 죄송합니다. 관리자가 삭제하십시오.

관련 문제