내 데이터는 현재 행당 일별 주가의 xts 또는 zoo 개체이며 각 열은 다른 회사입니다.xts에 적용 함수
library(quantmod)
getSymbols("AAPL;MSFT;YHOO")
closePrices <- merge(Cl(AAPL),Cl(MSFT),Cl(YHOO))
저는 아직 R에 익숙하지 않으며 이것을 재생하는 데 도움이 필요합니다. Excel function. 각 부분에 대한 값은 정확했지만, denomJ에 대한 잘못된 날짜로 정렬되어 있기 때문에
dailyDiff <- abs(diff(closePrices,1))
numerJ <- diff(closePrices,10)
denomJ <- as.xts(rollapply(dailyDiff,11, sum))
idx <- abs(numerJ/denomJ)
이 좋았어요 : 내 첫번째 생각은 분자와 분모로 기능을 분리 한 다음 인덱스를 계산하는 것이다. 예를 들어, numerJ의 꼬리는 2012 년 6 월 21 일로, denomJ의 꼬리는 2012 년 6 월 14 일으로 이동합니다.
내가 찾고 있어요 출력은 다음과 같습니다
- 2012년 6월 21일 = 0.11
- 2012년 6월 20일 = 0.27
- 6/19/2012 = 0.46
- 2012년 6월 18일 = 0.39
- 2012년 6월 15일 = 0.22
이제 예제를 재현 할 수있게되었으므로 질문을 다시 방문하여 예상되는 결과를 제공 할 수 있습니까? 또한 "날짜가 잘못되었습니다"및 "idx에 잘못된 값이 있습니다"라는 의미를 설명하십시오. –
감사합니다. 수정되었습니다. 이 두 xts/zoo 객체 인 numerJ와 denomJ가 정확한 숫자 (numerJ @ 6/21 = 5.95 및 denomJ @ 6/21 = 53.25)를 생성하고 있음을 알기를 바랍니다. 아직 rollapply 함수의 결과로, 내가 원하지 않는 날짜 값에 정렬합니다. – jonnie
나는 당신의 질문을 전혀 이해하지 못합니다. Excel 기능을 사용하면 라벨이 잘못 붙여져있어 혼란 스럽습니다. 다시 : 귀하의 최근 코멘트, 어디서나 53.25 번호를 볼 수 없습니다. 즉, 날짜 정렬에 대한 불만을 토대로,'rollapply' 호출에서'align = right'를 사용해야하거나 ('rollapplyr' 래퍼를 사용하는 것) 거의 확실합니다. '? rollapply'을보십시오 – GSee