2013-03-23 1 views
2

저는 하나의 파일로 두 개의 데이터 시리즈를 병합하여 R의 1 년 변동 데이터를 분석하려고합니다. 한 시리즈는 매주이고 다른 시리즈는 매월입니다. 매주 시리즈를 매월로 변환하는 것이 문제입니다. 주간 데이터에 apply.monthly()을 사용하면 월간 파일이 만들어 지지만 merge.xts()을 통해 두 파일을 결합한 후 월간 시리즈의 첫 번째 날 형식과 일치하지 않는 월간 날짜가 생성됩니다. 질문 : 두 시리즈에 대해 결과로 병합 된 파일 (아래 샘플)을 한 월별 항목으로 변경하는 방법은 무엇입니까? 이 같은두 개의 xts 파일을 병합하는 날짜 정렬 방법은 무엇입니까?

2012-11-01 0.02079801   NA 
2012-11-24   NA -0.03375796 
2012-12-01 0.02052502   NA 
2012-12-29   NA 0.04442094 
2013-01-01 0.01881466   NA 
2013-01-26   NA 0.06370272 
2013-02-01 0.01859883   NA 
2013-02-23   NA 0.02999318 

답변

3

to.monthly으로 전화하여 indexAt="firstof"을 전달하면 해당 월의 첫 번째 달에 색인을 사용하여 데이터를 가져올 수 있습니다.

library(quantmod) 
getSymbols(c("USPRIV", "ICSA"), src="FRED") 
merge(USPRIV, to.monthly(ICSA, indexAt="firstof", OHLC=FALSE)) 
+0

GSee, 그게 다예요. 정말 고맙습니다. 나는 이것을 약간의 개조와 함께 사용할 수있다. 성공! –

+1

@JPP : 질문에 가장 잘 답변 한 경우 옆에있는 녹색 체크 표시를 확인해보십시오. –

+0

이 수정은 최신 패키지 및/또는 R 버전에서 작동하지 않습니다. 모두 R 2.14.1과 R Studio 0.97.332 및 xts 0.8-6이 좋습니다. 이후 버전 중 하나 이상 (나는 그것이 xts라고 생각한다)은 수정을 실행 불가능하게 만든다. 어! !! –

0

뭔가 : 날짜가없는 결과의 열로, 행 이름으로 인코딩되어

do.call(rbind, by(d[-1], d[[1]] - as.POSIXlt(d[[1]])$mday, FUN=apply, 2, sum, na.rm=TRUE)) 
##     V2   V3 
## 2012-10-31 0.02079801 -0.03375796 
## 2012-11-30 0.02052502 0.04442094 
## 2012-12-31 0.01881466 0.06370272 
## 2013-01-31 0.01859883 0.02999318 

참고.

+0

주셔서 감사합니다.하지만 더 이상 묻는 것에 대해 사과드립니다. 주간 데이터 세트 만 실행해도 되겠습니까? 아니면 두 시리즈? "d"가 시리즈를 나타 냅니까? –

+0

'd'는 위에서 붙여 넣은 것으로 만들어진 data.frame을 나타냅니다. 그러나 매우 유사한 표현식을 사용하여 주간 데이터를 집계 할 수 있습니다. 원본 데이터의 일부분의 예를 보면 해당 코드를 작성하는 데 도움이됩니다. –

+0

매우 감사드립니다. 여기 내가 한 일이있다. 월간 시리즈는 개인 급여 (USPRIV)이며, 주간 시리즈는 실업 수당 청구 (ICSA)입니다. 먼저 ICSA <집계 (ICSA, 예 : ICSA), 평균) –

관련 문제