使用数据框合并或绑定 xts 对象
Merge or cbind xts object with 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)
我想添加一些我从 FRED 下载的更多变量,如下所示:
library('quantmod')
y<-getSymbols('T10Y2Y',src='FRED', auto.assign=FALSE)
y2<-to.monthly(y)
y 是一个 "xts" "zoo" 对象。现在,y2 的长度与我现有的数据帧不同。将 y2 合并或绑定到数据帧的最简单方法是什么,同时只保留数据帧中的日期数(在上面的 MinExample 中,只保留那 3 个月)。
我试过 merge(df, y2, by='Date') 但是 y2 对象并没有真正的日期,而是一个带有日期的索引。感谢您的任何建议。
将y2
转换为data.frame(或将df转换为xts对象),具有与df
中相同的时间序列结构。注意原来的时间序列结构不同:
> class(index(y2))
[1] "yearmon"
而 df
中的 Date
是 Date
类型。
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
我有一个包含每月时间序列(各种金融和经济变量)的数据框,如下所示:
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)
我想添加一些我从 FRED 下载的更多变量,如下所示:
library('quantmod')
y<-getSymbols('T10Y2Y',src='FRED', auto.assign=FALSE)
y2<-to.monthly(y)
y 是一个 "xts" "zoo" 对象。现在,y2 的长度与我现有的数据帧不同。将 y2 合并或绑定到数据帧的最简单方法是什么,同时只保留数据帧中的日期数(在上面的 MinExample 中,只保留那 3 个月)。
我试过 merge(df, y2, by='Date') 但是 y2 对象并没有真正的日期,而是一个带有日期的索引。感谢您的任何建议。
将y2
转换为data.frame(或将df转换为xts对象),具有与df
中相同的时间序列结构。注意原来的时间序列结构不同:
> class(index(y2))
[1] "yearmon"
而 df
中的 Date
是 Date
类型。
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