2011-09-20 5 views
3

quantmod의 "to.weekly"함수를 사용하여 주간 주가 데이터에 일일 주가 데이터를 (닫는 경우에만) 집계하려고합니다. .quantmod 'to.weekly'함수를 사용하여 일별 데이터를 수집하면 금요일이 아닌 월요일에 끝나는 주간 데이터가 생성됩니다.

tmp <- to.weekly(foo)

위의 방법은 그 tmp에 성공하십시오 XTS는 foo이 주식은 내가 사용이 매일 데이터를 집계하기 위해 2011 년 9 월 1 월 2011 월요일 3부터 월요일 20 일에 끝나는 매일 주가 데이터를 보유 객체 이제 quantmod 문서 당 주간 OHLC 데이터 포인트 시리즈를 보유하고 있습니다. 문제는이 시리즈가 2011 년 1 월 3 일 월요일에 시작되며 다음 주에도 월요일에 시작된다는 것입니다. 1 월 10 일 월요일, 1 월 17 일 월요일 등등. 주간 시리즈가 금요일 1 월 7 일에 시작하여 9 월 16 일 금요일에 끝나기 위해 금요일에 끝나는 주를 기대했습니다.

나는 데이터의 시작과 끝을 조정하고 indexAt 매개 변수와 함께 'endof'또는 'startof'를 사용하여 실험했지만 금요일에 끝나는 주를 반환 할 수 없습니다.

받은 통찰력에 대해 감사드립니다. (미안 해요, 난 데이터가 아래에 나타나도록 dput 파일을 첨부 할 수있는 방법을 찾을 수 없습니다)

foo는 :

2011-01-03 2802 
2011-01-04 2841 
2011-01-05 2883 
2011-01-06 2948 
2011-01-07 2993 
2011-01-10 2993 
2011-01-11 3000 
2011-01-12 3000 
2011-01-13 3025 
2011-01-14 2970 
2011-01-17 2954 
2011-01-18 2976 
2011-01-19 2992 
2011-01-20 2966 
2011-01-21 2940 
2011-01-24 2969 
2011-01-25 2996 
2011-01-26 2982 
2011-01-27 3035 
2011-01-28 3075 
2011-01-31 3020 

의 tmp : 뭔가는 항복을 마련했습니다

  foo.Open foo.High foo.Low foo.Close 
2011-01-03  2802  2802 2802  2802 
2011-01-10  2841  2993 2841  2993 
2011-01-17  3000  3025 2954  2954 
2011-01-24  2976  2992 2940  2969 
2011-01-31  2996  3075 2982  3020 

답변

1

값을 닫으면 OHLC 시리즈를 반환하기 위해 해킹 당할 수 있습니다.

그리고 우리가 그것을 앞에 추가
fridays = as.POSIXlt(time(foo))$wday == 5 

0과 :

indx <- c(0, which(fridays)) 

및 사용 period.apply :

첫째 우리는 금요일의 굴절률들의 벡터를 생성, fooxts 목적이라고 가정

period.apply(foo, INDEX=indx, FUN=last) 

결과 :

  [,1] 
2011-01-07 2993 
2011-01-14 2970 
2011-01-21 2940 
2011-01-28 3075 
+0

감사합니다. 래퍼 코드에 코드를 적용하고 몇 xts 개체로 테스트 했으므로 제대로 작동하는 것 같습니다. – SlowLearner