2013-10-26 4 views
1

현재 다음 xts 테이블이 있습니다. 나는 R과 루프의 일종을 사용하여 패키지없이이 작업을 수행하는 방법을 궁금해하지 새로 온 그러나XTS 개체에서 지연을 계산하는 방법을 이해하려고 시도 중입니다.

 AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume AAPL.Adjusted 
2013-09-09 505.00 507.92 503.48  506.17 12116200  506.17 
2013-09-10 506.20 507.45 489.50  494.64 26490200  494.64 
2013-09-11 467.01 473.69 464.81  467.71 32031600  467.71 
2013-09-12 468.50 475.40 466.01  472.69 14409400  472.69 
2013-09-13 469.34 471.83 464.70  464.90 10649000  464.90 
... 

나는 퍼센트 변화 Delt(AA[,"AAPL.Adjusted"],k=1)을 계산하기 위해 quantmod 패키지를 사용할 수 있습니다. 나는 그것이 lag(k/k-1)-1과 같을 것 같아요? 고맙습니다.

답변

1

나는

AA$AAPL.change2<-AA[,"AAPL.Adjusted"]/lag(AA[,"AAPL.Adjusted"], k=1, na.pad = TRUE)-1

날 현재 대 지연을 차별화 있지만 즉, 단지 객체를 호출하면 충분한 것으로 판명하는 방법이었다 혼동 무엇, 온라인 XTS 패키지 PDF에서 알아 냈 객체가 x이면 1의 래그로 전류를 나눕니다. x/lag (x, k = 1) - 이것은 아마도 분명하지만 초보자에게는 정말 멋집니다.)

1

또 다른 옵션은 다음과 같습니다. 사용 예 : ROC

s <- get(getSymbols('AMZN') 
s$pct <- ROC(Ad(s),1) 
head(s) 
      AMZN.Open AMZN.High AMZN.Low AMZN.Close AMZN.Volume AMZN.Adjusted   pct 
2007-01-03  38.68  39.06 38.05  38.70 12405100   38.70   NA 
2007-01-04  38.59  39.14 38.26  38.90  6318400   38.90 0.005154651 
2007-01-05  38.72  38.79 37.60  38.37  6619700   38.37 -0.013718346 
2007-01-08  38.22  38.31 37.17  37.50  6783000   37.50 -0.022934971 
2007-01-09  37.60  38.06 37.34  37.78  5703000   37.78 0.007438929 
2007-01-10  37.49  37.70 37.07  37.15  6527500   37.15 -0.016816091