首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >填补时间序列数据中的漏洞

填补时间序列数据中的漏洞
EN

Stack Overflow用户
提问于 2015-01-08 15:10:05
回答 1查看 1.3K关注 0票数 0

所以我试图用R中的股票和指数建立一个因素模型,我一共有30只股票和16种指数。它们都是从"2013-1-1“到"2014-12-31”的时间序列。至少我所有的股票都是。我所有的索引都遗漏了一些条目。例如,我所有的股票数据的长度为522,但一份股票的长度为250、300、400等等,但它们都是从“2013-1”开始,最后是"2014-12-31“。因为我的数据有漏洞,所以我不能用它们来检验相关性和建立线性模型。基本上我什么也做不了。所以我需要填补这些漏洞。我在考虑用他们的刻薄来填补这些漏洞。但我不知道怎么做,我当然愿意接受其他的想法。你能帮帮我吗?这对我来说是个重要的学期,所以有很多事情要做.

EN

回答 1

Stack Overflow用户

发布于 2015-01-08 15:27:49

根据您的评论进行编辑(并修复我所犯的错误):

这是基本的数据管理,我感到惊讶的是,有人要求您处理timeseries数据,而不知道如何使用merge()和如何创建数据格式。

创建一些带有日期漏洞的假日期和值数据:

代码语言:javascript
运行
复制
    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值的日期数据

代码语言:javascript
运行
复制
    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"

将两个数据文件合并在一起

代码语言:javascript
运行
复制
    tmp <- merge(dFB, dFA, by = "date", all = T)

tmp$vals中的tmp$vals值更改为任何您想要的

代码语言:javascript
运行
复制
    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()

创建一个新的数据框架,用一个向量作为日期序列,它跨越原始数据的范围,而另一个向量则使用您要填充的漏洞(零,意思是什么)。那就把这两个人放在一起吧:

代码语言:javascript
运行
复制
    merge(dFB, dFA, by = [the column with the date values], all = TRUE)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27843254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档