我正在查看道琼斯指数和FSTE100的时间序列,但由于交易日的影响,它们的长度不一样。我怎样才能在R中解决这个问题?
我看到了一段代码片段,我试图调整它的数据,如下所示:
zz <- merge(ftse100$Date, djia$Close, all = TRUE)
zz[is.na(zz)] <- 0
View(zz)
但它没有给我我想要的结果,它是重复行,所以我试着自己做:
z<-setdiff(ftse100$Date,djia$Date)
print(length(z))
for (i in 1:length(z) ) {
index = match(c(z[i]), ftse100$Date)
ftse100 <- ftse100[-c(index),]
}
print(NROW(ftse100))
但我必须对所有数据帧执行此操作并且它变得越来越复杂。有没有办法删除每个数据框中没有的日期?
答案 0 :(得分:1)
我认为这可能会做你想要的:
set.seed(2)
stocksA <- data.frame(Date=sample(1:10, 7), price=rnorm(7))
stocksB <- data.frame(Date=sample(1:10, 7), price=rnorm(7))
stocksC <- data.frame(Date=sample(1:10, 7), price=rnorm(7))
sharedDates <- intersect(intersect(stocksA$Date, stocksB$Date), stocksC$Date)
relevantA <- stocksA[stocksA$Date %in% sharedDates, ]
relevantA
这给了我:
Date price 1 2 0.9678839 2 7 0.1256203 6 8 -0.7526655
如果您需要为大量数据集执行此操作,您当然可以利用一些循环...