如何使用一个xts对象的索引来子集另一个xts对象? require(quantmod) 要求(TTR) 要求(性能分析) tckr

如何使用一个xts对象的索引来子集另一个xts对象? require(quantmod) 要求(TTR) 要求(性能分析) tckr,r,xts,R,Xts,看看GSPC,特别是行数 require(quantmod) require(TTR) require(PerformanceAnalytics) tckr<-"^GSPC" start<-"1986-12-31" end<- format(Sys.Date(),"%Y-%m-%d") # yyyy-mm-dd getSymbols(tckr, from=start, to=end) US10yRate<-getSymbols("DGS10",src="FRED",

看看GSPC,特别是行数

require(quantmod)
require(TTR)
require(PerformanceAnalytics)

tckr<-"^GSPC"

start<-"1986-12-31"
end<- format(Sys.Date(),"%Y-%m-%d") # yyyy-mm-dd

getSymbols(tckr, from=start, to=end)
US10yRate<-getSymbols("DGS10",src="FRED",auto.assign=FALSE,from=start, to=end)

US10yRate<-to.daily(US10yRate)[,1]

#running 25 day correlation 
correlationSPand10y<-runCor(US10yRate[,1],GSPC[1:12789,2],n=25)


U您可以先合并它们,以确保它们的行数相同

 U <- US10yRate[index(US10yRate) %in% index(GSPC),1]
 G <- GSPC[index(GSPC) %in% index(US10yRate), 2]
 dim(U)
 #  [1] 6552    1
 dim(G)
 #  [1] 6552    1

dat感谢您为我指出functino合并。我试过你的代码,但不起作用。dat是xts[0]的结构。这可能是xts的时区问题。如果先执行Sys.setenv(TZ=“GMT”)
,会发生什么?
 U <- US10yRate[index(US10yRate) %in% index(GSPC),1]
 G <- GSPC[index(GSPC) %in% index(US10yRate), 2]
 dim(U)
 #  [1] 6552    1
 dim(G)
 #  [1] 6552    1
dat <- merge(US10yRate[, 1], GSPC[, 2], all=FALSE)
# or,
# dat <- na.locf(merge(US10yRate[, 1], GSPC[, 2]))

correlationSPand10y <- runCor(dat[, 1], dat[, 2], n=25)