2012-05-09 3 views
5

Windows에서 R/xts/zoo의 최신 버전을 사용하고 있습니다. R 2.15, xts 0.8-6, zoo 1.7-7동물원/xts - 1 셀 하위 집합에서 수학을 수행 할 수 없습니까? R이 응답하지 않습니다

다음과 같은 기괴한 동작이 나타납니다. 이전 버전 :

library(xts) 
data(sample_matrix) 
sample.xts <- as.xts(sample_matrix) 

sample.xts[1, 2] - sample.xts[2,2]  # results in numeric(0)?!?!?! 
(sample.xts[ 1, 2] - sample.xts[2,2])/sample.xts[3,1] # if I run this twice R locks up 

여기서는 하나의 셀에 XTS 개체를 하위 집합으로 지정했습니다. 빼기가 더 이상 작동하지 않습니다. 또한 부서에 따라 R이 완전히 잠기 게됩니다.

다른 사람이이 메시지를 보나요? 이 버그는 알려진 버그입니까, 아니면 뭔가 빠졌습니까? 저는 이것을 두 대의 기계에서 재현 할 수 있습니다.

세션 정보 (비밀로 삭제 몇 가지 패키지) :

R version 2.15.0 (2012-03-30) 
Platform: x86_64-pc-mingw32/x64 (64-bit) 

locale: 
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252 
[4] LC_NUMERIC=C       LC_TIME=English_United States.1252  

attached base packages: 
[1] parallel stats  graphics utils  datasets grDevices methods base  
+0

BTW,이 작업은 하위 집합 연산과 관련이있어서 명명 된 숫자 대신 zoo/xts 개체를 반환한다고 생각합니다. 아마도 이것은 내 환경이'''다른 패키지에 의해 도용 당했기 때문에 설치 되었기 때문에 나에게 도움이 되었습니까? 어쨌든, 충돌을 설명하지 않습니다! – SFun28

+0

'sessionInfo'의 출력 결과가 과거에 이것이 왜 당신에게 효과가 있었는지를 판단하는 데 도움이 될 수 있습니다. 또한 "중단"또는 "잠김"은 충돌과 동일하지 않습니다. 충돌이 발생하면 프로그램이 종료됩니다. 어쨌든, 그 행동은 바람직하지 않습니다. –

+0

크래시 v. 정지에 대해 정확합니다. 나는 극적이었다. =) 나는 제목을 갱신했다. sessionInfo()에 대한 팁을 가져 주셔서 감사합니다! – SFun28

답변

2

당신은 겹치지 않는 인덱스와 XTS/동물원 객체를 뺄 수 없었다 않았다. 산술 연산은 항상 연산을 수행하기 전에 병합됩니다. 원하는 결과를 제공하기 위해 작성한 뺄셈을 위해서는 coredata을 사용해야합니다.

coredata(sample.xts[1,2]) - coredata(sample.xts[2,2]) 

나는 두 번째 문제를 복제 할 수 있지만 동물원/XTS 관용구 맞지 않고 완전히 빈 XTS 개체를 초래하기 때문에 나는이 해결하기 위해 높은 우선 순위해야 확실하지 않다. 색인의 일부 (일부)가 정렬되면 모든 것이 잘됩니다.

(sample.xts[1,2] - sample.xts[1,3])/sample.xts[1,4] 
(sample.xts[2,2] - sample.xts[1:2,3])/sample.xts[2:3,4] 
+0

내 패키지 기능이 xts 객체를 [x] 객체를 통해 이름이있는 숫자로 변환했기 때문에 이것이 과거에 나를 위해 일했다고 생각합니다. 함수가 [.zoo를 찾을 수 없기 때문에 이런 경우라고 생각합니다. 그래서 내 패키지 환경이 이제는 [.zoo. 말이 돼? – SFun28

+0

@JoshuaUlrich : 재시작이 필요한 것 같은 "정지"가 발생하는 대신 오류가 _보고 될 것이고 기본적으로 "상응하는 충돌"이라고 생각됩니다. –

+0

@DWin : 알아, 알아. 그러나 나는 정말로 그렇게 말하고 싶다. "그러지 마라." –