首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >绘制时态TS并省略NA数据

绘制时态TS并省略NA数据
EN

Stack Overflow用户
提问于 2011-02-24 20:37:25
回答 3查看 1.1K关注 0票数 5

我正在尝试绘制一些时间数据,这些数据中有一些间隙。你可以在这里看到这个图:http://www.tiikoni.com/tis/view/?id=da222e2

问题是,在TS中的时间间隔期间,线状图被插入到间隔上,而我不希望它这样。我试过用安娜标志交错填充空隙,但有大约10000个数据点是从多个文件中排序的,这使得手动添加NA标志变得困难。如果不能定义图的行为(0函数,是否有其他图可以使用,例如动物园),它将允许我不在间隙之间画线?

EN

回答 3

Stack Overflow用户

发布于 2011-02-24 21:26:21

一旦知道了时间序列的顺序,使用merge就不难与NA交错。下面是一个小演示:

代码语言:javascript
复制
X <- c(1:20,41:100)
Y <- rnorm(80)

plot(X,Y,type="l")    

Z <- seq(min(X),max(X),by=1)    # I take 1 is the period.
newData <- merge(data.frame(X,Y),data.frame(X=Z),all=T)
plot(newData,type="l")
票数 3
EN

Stack Overflow用户

发布于 2011-02-24 21:30:20

创建一个有间隙的动物园系列。然后定义g,它包括z的时间点加上缺失点。创建一个零宽度的zoo系列以与z和plot合并。

代码语言:javascript
复制
library(zoo)
z <- zoo(rnorm(12), c(1:6, 11:16)) # test data

g <- seq(start(z), end(z), 1)
zz <- merge(z, zoo(, g))
plot(zz)
票数 2
EN

Stack Overflow用户

发布于 2011-02-26 00:29:26

感谢所有为我的查询做出贡献的人。

我还把这个问题贴到了R-help邮件列表中,从那里我得到了一个用安娜标志填充缺失数据点的过程。问题是,时间戳的间距是不规则的,但仍然在一定的阈值内。

为了子孙后代,这是邓肯·默多克的建议:

任何软件都会有和你一样的问题:你如何定义差距?如果定义很简单,比如“时间差大于X",那么就相当简单了:使用diff()找出排序时间中的所有时间差,并在这些时间差超过X的地方插入一个具有安娜值的新数据点。例如:

代码语言:javascript
复制
t <- c(1,2,3,7,8,9,11,12,13)
x <- rnorm(length(T))
d <- diff(t)
gap <- which(d > 1.5)
if (length(gap)) {
   newT <- (t[gap] + t[gap+1])/2
   t <- c(t, newT)
   x <- c(x, rep(NA, length(newT)))
   o <- order(t)
   t <- t[o]
   x <- x[o]
}
plot(t, x, type='l')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5104766

复制
相关文章

相似问题

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