所以我试图用R中的股票和指数建立一个因素模型,我一共有30只股票和16种指数。它们都是从"2013-1-1“到"2014-12-31”的时间序列。至少我所有的股票都是。我所有的索引都遗漏了一些条目。例如,我所有的股票数据的长度为522,但一份股票的长度为250、300、400等等,但它们都是从“2013-1”开始,最后是"2014-12-31“。因为我的数据有漏洞,所以我不能用它们来检验相关性和建立线性模型。基本上我什么也做不了。所以我需要填补这些漏洞。我在考虑用他们的刻薄来填补这些漏洞。但我不知道怎么做,我当然愿意接受其他的想法。你能帮帮我吗?这对我来说是个重要的学期,所以有很多事情要做.
发布于 2015-01-08 15:27:49
根据您的评论进行编辑(并修复我所犯的错误):
这是基本的数据管理,我感到惊讶的是,有人要求您处理timeseries数据,而不知道如何使用merge()
和如何创建数据格式。
创建一些带有日期漏洞的假日期和值数据:
dFA <- data.frame(seq.Date(as.Date("2014-01-01"), as.Date("2014-02-28"), 3))
names(dFA) <- "date"
dFA$vals <- rnorm(nrow(dFA), 25, 5)
创建从dFA中的dFA值到dFA中的max
值的日期数据
dFB <- as.data.frame(seq.Date(as.Date(min(dFA$date, na.rm = T), format = "%Y-%m-%d"),
as.Date(max(dFA$date, na.rm = T), format = "%Y-%m-%d"),
1))
names(dFB) <- "date"
将两个数据文件合并在一起
tmp <- merge(dFB, dFA, by = "date", all = T)
将tmp$vals
中的tmp$vals
值更改为任何您想要的
tmp$vals[is.na(tmp$vals)] <- mean(dFA$vals)
head(tmp)
date vals
1 2014-01-01 18.48131
2 2014-01-02 24.16256
3 2014-01-03 24.16256
4 2014-01-04 28.78855
5 2014-01-05 24.16256
6 2014-01-06 24.16256
原文评论如下
填补这些漏洞的最简单方法是使用merge()
。
创建一个新的数据框架,用一个向量作为日期序列,它跨越原始数据的范围,而另一个向量则使用您要填充的漏洞(零,意思是什么)。那就把这两个人放在一起吧:
merge(dFB, dFA, by = [the column with the date values], all = TRUE)
https://stackoverflow.com/questions/27843254
复制相似问题