2016-10-21 1 views
0

다른 xts 객체의 논리 값을 기반으로 xts 객체의 날짜를 부분 집합으로 지정하려고하지만 R은 in 범위 값.xts 객체의 값을 R 값으로 서브 세트 할 때 범위를 벗어나는 오류가 발생했습니다.

예를 들어 나는 RSI 이것은 내 개체 모두 2016년 10월 21일 때까지 데이터를 가지고 있기 때문에 내가 기대하는 출력되지 않습니다 위 (60)

> strength <- RSI(d, 14)>60 
> strength["2016-10-17::"] 
      RSI 
2016-10-17 TRUE 
2016-10-18 TRUE 
2016-10-19 TRUE 
2016-10-20 FALSE 
2016-10-21 FALSE 

> d["2016-10-17::"] 
       Open 
2016-10-17 642.2760 
2016-10-18 640.5988 
2016-10-19 637.0000 
2016-10-20 631.9800 
2016-10-21 633.6470 

> d["2016-10-17::"][strength == TRUE] 
Error in `[.xts`(d["2016-10-17::"], strength == TRUE) : 
    'i' or 'j' out of range 

입니다 날짜와 가격을 필터링하고 싶습니다. 무엇이 잘못 될 수 있습니까? 이건 내 XTS 개체의 str입니다

> d["2016-10-17::"][strength == TRUE] 
       Open 
2016-10-17 642.2760 
2016-10-18 640.5988 
2016-10-19 637.0000 

: 내가 좋아하는 뭔가를하고 싶은

> str(d) 
An ‘xts’ object on 2013-09-02/2016-10-21 containing: 
    Data: num [1:1146, 1] 127 128 121 121 116 ... 
- attr(*, "dimnames")=List of 2 
    ..$ : NULL 
    ..$ : chr "Open" 
    Indexed by objects of class: [Date] TZ: UTC 
    xts Attributes: 
List of 2 
$ dateFormat: chr "Date" 
$ na.action :Class 'omit' atomic [1:92] 1 2 3 4 5 6 7 8 9 10 ... 
    .. ..- attr(*, "index")= num [1:92] 1.37e+09 1.37e+09 1.37e+09 1.37e+09 1.37e+09 ... 

> str(strength) 
An ‘xts’ object on 2013-09-16/2016-10-21 containing: 
    Data: logi [1:1132, 1] FALSE FALSE FALSE FALSE FALSE FALSE ... 
- attr(*, "dimnames")=List of 2 
    ..$ : NULL 
    ..$ : chr "RSI" 
    Indexed by objects of class: [Date] TZ: UTC 
    xts Attributes: 
NULL 
> 

, 당신은

+0

오타가있다 : 당신이 할 경우 오류가 안 나는 [ "2016년 10월 17일 ::"]) [강도가 == TRUE가]'해야'개발 [believe'd "2016-10-17 ::"] [strength == TRUE]' –

+0

죄송합니다. 이것은 Question 문에서 오타입니다. 수정 됨. – Florent

답변

2

당신은 재현 예를하지 않았다 감사 그래서 여기에 몇 가지 장난감 데이터는 . 귀하의 문제가 동시에 창에 힘을 부분 집합하지 않은 것입니다 (그래서 당신의 내면의 strength == TRUE 논리적 시리즈는 사용자의 오류를 생성하여 d 행 길이에 다른 행 길이가 즉 NROW(strength == TRUE) >>NROW(d["2016-10-17::"]).) :

library(quantmod) 
getSymbols("AAPL") 
d <- AAPL 
strength <- RSI(Cl(d)) > 60 

당신

d["2016-10-17::"][strength["2016-10-17::"] == TRUE] 
관련 문제