2017-12-22 13 views
1

を持つオブジェクト:マージまたはCBIND XTSは、私は毎月の時系列でのデータフレーム(様々な金融および経済変数)、このような何か持っているデータフレーム

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

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

yは「xts」「zoo」オブジェクトです。このように、FREDからダウンロードしています。今、y2は私の既存のデータフレームとは異なる長さです。 y2をデータフレームにマージまたはバインドする最も簡単な方法は、データフレームにある日付の数を保持するだけです(上記のMinExampleでは、それらの3ヶ月しか保持しません)。

私はマージ(df、y2、by = 'Date')を試みましたが、y2オブジェクトには実際には日付は含まれていません。私は何か提案に感謝しています。

答えて

1

y2をdata.frame(またはdfをxtsオブジェクトに変換)に変換し、dfと同じ時系列構造を使用します。

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

dfDateDateタイプのものでありながら:元の時系列構造が異なっていることに注意してください。

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

これは素晴らしいです、ありがとうございます! –

関連する問題