首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用双小波包对R中的带间隙数据进行小波分析

用双小波包对R中的带间隙数据进行小波分析
EN

Stack Overflow用户
提问于 2021-06-30 15:55:35
回答 1查看 38关注 0票数 0

我正在使用R中的biwavelet包执行小波分析。日期变量没有连续的日期,但有间隙。当我尝试创建图形时,我得到了以下错误。

Error in check.datum(d) : The step size must be constant (see approx function to interpolate)

MWE如下所示:

代码语言:javascript
复制
   library(foreign)
   library(biwavelet)
   library(xts)
   library(labelled)
   library(zoo)

   date =c("2020-02-13", "2020-02-14", "2020-02-17", "2020-02-18", "2020-02-19", "2020-02-20", "2020-02-21", "2020-02-24", "2020-02-25", "2020-02-26", "2020-02-27", "2020-02-28", "2020-03-02", "2020-03-03", "2020-03-04", "2020-03-05", "2020-03-06", "2020-03-09", "2020-03-10", "2020-03-11", "2020-03-12", "2020-03-13")
   rdate = as.Date(date)
   date <- as.Date(date, format = "%Y-%m-%d")
   date
   class(date)
   var = c(-0.077423148, -0.083293147, -0.089214072, -0.095185943, -0.101208754, -0.107282504, -0.113407195, -0.119582824, -0.125809386, -0.125806898, -0.132149309, -0.138584509,  -0.145112529, -0.151733354, -0.158446968, -0.165253401, -0.172152638, -0.179144681, -0.186229542, -0.193407193, -0.200677648, -0.208040923)
   data = data.frame(date, var)
   View(data)
   X <- as.xts(data[,-1], order.by = date)
   ABC <- data.frame(date, var)
   wt.t1=plot(wt(ABC), form = "%b-%d")

如何解决此问题?

EN

回答 1

Stack Overflow用户

发布于 2021-07-01 04:10:44

您可以按照错误消息中的说明插入缺少的天数:

代码语言:javascript
复制
alldates <- seq(min(date), max(date), by = 1)
interpdata <- approx(date, var, xout = alldates)
ABC <- data.frame(date = alldates, var = interpdata$y)
wt.t1 <- plot(wt(ABC, form = "%b-%d")

但是,我认为您缺少某些天的原因是因为它们是星期六或星期日;我在数据集中只看到工作日。

对于许多数据集(例如,股票市场交易等)插入“周六的价格会是多少?”是没有意义的,因为交易永远不会发生在周六或周日。在这种情况下,我建议用一个简单的增量替换"date“变量,例如

代码语言:javascript
复制
date <- 1:length(date)
ABC <- data.frame(date, var)
wt.t1=plot(wt(ABC), form = "%b-%d")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68190641

复制
相关文章

相似问题

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