2012-12-22 2 views
4

나는 quantmod 패키지를 사용하여 주식 데이터를 가져옵니다. XTS의 코드잘못된 날짜를 제공하는 getSymbols (quantmod)

Data = getSymbols('LON:ADN',src="google",auto.assign=FALSE, from = '2011-08-10') 

결과는 일요일이었다 2012년 10월 21일 (10 월 21 일)에 대한 거래의 볼륨을 보여주고, 따라서 분명히 잘못된 것입니다 그러나 세밀한 조사에, 예상대로. 다른 여러 일요일도 포함되어 있습니다. 불행히도 주말을 둘러싼 오류로 인해 나머지 데이터가 정렬되지 않은 것으로 보입니다.

이전에 quantmod로 시세를 가져 오는 비슷한 문제를 경험 한 사람이 있었습니까? 그렇다면 그 사람들이 주위에있는 방법을 알고 있습니까? 당신이 코멘트에서 언급 한 바와 같이

감사

+0

'quantmod' 패키지의 최신 버전 (0.3-17)을 사용하고 있으며 문제가 없습니다. 2012-10-19에 대한 데이터를 얻었고 다음 데이터는 2012-10-22입니다. 어쩌면 당신은 최신 버전을 사용하지 않고 있습니까? 'installed.packages() [ "quantmod", "Version"]'을 실행하여 확인할 수 있습니다. – flodel

+0

문제를 복제하지 않습니다 ('library (lubridate); unique (wday (Data, label = T))'는 주말을 표시하지 않습니다). 날짜를 이동하는 시간대 오류를 확인합니다. POSIXct는 날짜 시간 표현이며 시간이없는 날짜는 자정으로 표시되기 때문에 POSIXct의 일반적인 문제입니다. 따라서 함수가 시간대를 변환하면 일을 이동할 수 있습니다. – MattBagg

+0

나는이 문제에 직면했다. 나는 한 번 상황을 묘사 한 웹 페이지를 발견했다. 나는 다시 찾으려고 노력할 것이다. – BenBarnes

답변

3

,이 가능성으로 인해 xts 기능에서 POSIX 날짜 변환 (this answer 참조), 시간대 문제처럼 보인다.

Sys.getenv("TZ")이 빈 문자열 인 경우 새 R 세션에서 문제를 재현 할 수 있습니다. 예를 들어, 유효한 시간대 (모든 테스트하지)에 시간대를 설정 "America/Chicago" 수익률 예상 날짜, 즉, 어떤 일 : 새로운 세션에서

(12 월 16 일 2012 일요일 없었다) :

Sys.getenv("TZ") 
# [1] "" 

library(quantmod) 
Data <- getSymbols('LON:ADN',src="google",auto.assign=FALSE, from = '2011-08-10') 
tail(index(Data)) 
# [1] "2012-12-13" "2012-12-16" "2012-12-17" "2012-12-18" "2012-12-19" "2012-12-20" 

그런 다음 시간대를 변경하십시오.

Sys.setenv(TZ="America/Chicago") 

Data <- getSymbols('LON:ADN',src="google",auto.assign=FALSE, from = '2011-08-10') 
tail(index(Data)) 
# [1] "2012-12-14" "2012-12-17" "2012-12-18" "2012-12-19" "2012-12-20" "2012-12-21" 

일요일 없음.

+0

도움을 주셔서 감사합니다.하지만 방금 확인했습니다. Sys.getenv ("TZ")를 올바른 시간대로 설정해야합니다. 그 사실을 분명히하고 미래가 혼란스럽게하는 데 도움이되도록 답을 편집 할 수 있습니까? 건배 –

+0

@ N.McA., 좋은 포인터. 문제를 수정하지 않은 r-forge에 대한 부분을 업데이트 및 제거했습니다. – BenBarnes

+0

R-forge 버전에서 수정해야합니다 (quantmod v0.3-22) –