首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >zoo对象的数学和rbind

zoo对象的数学和rbind
EN

Stack Overflow用户
提问于 2018-05-01 04:06:53
回答 1查看 69关注 0票数 1

我有一个有三列的zoo对象。我想计算每一列的成对差异,以获得随时间的相对变化。为此,我使用了一个for循环。然而,我返回的不再是一个zoo对象,而是一个普通的data.frame。

当我想要在多个面板中绘制它时,我会松开x轴时间标签。当我尝试将dataframe转换回zoo对象时,我得到了一个“错误条目”的错误。

代码语言:javascript
复制
head(zoo.2017)

          zoo1  zoo2     zoo3
2017-01-01 104.6066 106.6240 112.7336
2017-01-02 103.1034 104.4088 111.8473
2017-01-03 103.4550 107.0606 111.4292
2017-01-04 101.6916 108.0550 111.8183
2017-01-05 101.8274 105.1528 114.3505
2017-01-06 102.9502 107.1381 113.8313

delta<-zoo()

for(n in 2:length(zoo.2017[,1])){

    diff<-as.data.frame(zoo.2017[n,])-as.data.frame(zoo.2017[n-1,])
    delta<-rbind(delta, diff)
}

head(delta)
               Maui6   Olowalu        Pali
 diff       -1.503264 -2.215139  -0.8862847
 2017-01-03 0.3516667  2.651771  -0.4180556
 2017-01-04 -1.763472 0.9944444   0.3890625
 2017-01-05 0.1358681 -2.902257    2.532153
 2017-01-06  1.122743  1.985313  -0.5191319
 2017-01-07  1.430937 0.5648958 -0.01836806

我知道错误可能来自for循环中的as.data.frame(),但我不知道如何计算它。当我后来在数据帧上尝试read.zoo()时,它给出了错误的条目...

我在动物园的日子还不好过

EN

回答 1

Stack Overflow用户

发布于 2020-01-16 22:44:14

如果z是在末尾的注释中重复定义的zoo对象,则使用diff.zoo获得每一列中的连续差异

代码语言:javascript
复制
zd <- diff(z)

给出这个zoo对象:

代码语言:javascript
复制
> zd
              zoo1    zoo2    zoo3
2017-01-02 -1.5032 -2.2152 -0.8863
2017-01-03  0.3516  2.6518 -0.4181
2017-01-04 -1.7634  0.9944  0.3891
2017-01-05  0.1358 -2.9022  2.5322
2017-01-06  1.1228  1.9853 -0.5192

关于绘图,我们现在可以使用以下任一方法来绘制它:

代码语言:javascript
复制
plot(zd)

library(ggplot2)
autoplot(zd)

library(lattice)
xyplot(zd)

zoo附带了几个插图(pdf文档)和参考手册,您可以阅读了解更多信息。

备注

代码语言:javascript
复制
Lines <- "date,zoo1,zoo2,zoo3
2017-01-01,104.6066,106.6240,112.7336
2017-01-02,103.1034,104.4088,111.8473
2017-01-03,103.4550,107.0606,111.4292
2017-01-04,101.6916,108.0550,111.8183
2017-01-05,101.8274,105.1528,114.3505
2017-01-06,102.9502,107.1381,113.8313"
library(zoo)
z <- read.csv.zoo(text = Lines)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50107486

复制
相关文章

相似问题

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