2017-12-22 19 views
1

객체를 :병합 또는 cbind XTS는 월별 시계열과 dataframe (다양한 금융 및 경제 변수) 이런 일이 dataframe

var1 <- c('1','2','3') 
var2 <- c('1','2','3') 
Date <- as.Date(c('1995-11-1','1995-12-1','1996-1-1')) 
df <- data.frame(Date, var1, var2) 

을 내가 더 많은 변수를 추가하고자하는 I 다음과 같이 FRED에서 다운로드 중입니다.

library('quantmod') 
y<-getSymbols('T10Y2Y',src='FRED', auto.assign=FALSE) 
y2<-to.monthly(y) 

y는 "xts" "zoo"개체입니다. 이제, Y2는 기존 dataframe 길이가 다른 경우이다. 전용 (만 3개월 유지, 위의 MinExample 단위) dataframe에있는 날짜의 수를 유지하면서 어떻게, 병합 또는 dataframe에 Y2를 cbind하는 가장 쉬운 방법이 될 것입니다.

내가 그러나 Y2 객체가 정말 날짜, 날짜가 아니라 인덱스가없는 (= '날짜'에 의해 DF, Y2) 병합을 시도했습니다. 나는 어떤 제안에 감사드립니다.

답변

1

y2df과 같은 시계열 구조로 data.frame (또는 df를 xts 객체로 변환)으로 변환하십시오. 원래 시계열 구조가 다르다는 것을 참고 : dfDateDate 유형

> class(index(y2)) 
[1] "yearmon" 

된다.

y2df <- data.frame(Date = as.Date(index(y2)), 
        coredata(y2)) 

df <- merge(df, y2df, by = "Date") 

#> df 
#  Date var1 var2 y.Open y.High y.Low y.Close 
#1 1995-11-01 1 1 0.46 0.50 0.40 0.40 
#2 1995-12-01 2 2 0.39 0.45 0.33 0.40 
#3 1996-01-01 3 3 0.42 0.67 0.41 0.67 
+0

이 환상적이다, 당신 너무 감사합니다! –