0

エリアのパラメーターは同じですが、プラットフォームが異なる 2 つの動物園の時系列があります。これらの 2 つの時系列は、個々の傾向が正しく、日付が重なっているにもかかわらず、数値がわずかにずれています。重複する日付のデータを使用して両方の系列のエラーを調整しながら、両方の時系列を 1 つの連続した系列にマージしたいと考えています。どうすればいいですか?以下にいくつかのサンプルデータを追加しました。

library(ggplot2)
library(gtable)
library(grid)
library(zoo)
library(reshape)
library(reshape2)
##Create zoo objects
x<-as.zoo(as.matrix(cbind(a=1:8,b=2:9)))
y<-as.zoo(as.matrix(cbind(a=2:9,b=3:10)))
##Create dates
CCnb1<-seq(from=as.Date("2004-01-01"),to=as.Date("2004-08-01"),by="1 months")
CCnb2<-seq(from=as.Date("2004-06-01"),to=as.Date("2005-01-01"),by="1 months")
##Index appropriately
index(x)<-CCnb1
index(y)<-CCnb2
####Create dataframes
x1<-as.data.frame(x)
y1<-as.data.frame(y)
##Add date columns
x1$Date=CCnb1
y1$Date=CCnb2
##Melt data frames
x2<-melt(x1, id.vars="Date")
y2<-melt(y1, id.vars="Date")

線がどのように見えるかについて、ggplot2 を使用した疑似プロットを含めました。私の実際の時系列ははるかに長く、値の変化はこの例ほど悪くありません。

#Plot
NT<-ggplot(x2, aes(x=Date, y=value,colour=variable, group=variable)) +
theme_bw()+ geom_line(size=0.5,colour="grey30")
NTb<-NT + geom_line(data=y2,aes(x=Date, y=value,group=variable))
NTb+facet_wrap(~variable)

上記の時系列を示すプロット

4

1 に答える 1

1

差は一定です。

> y$a - x$a
2004-06-01 2004-07-01 2004-08-01 
        -4         -4         -4 
> y$b - x$b
2004-06-01 2004-07-01 2004-08-01 
        -4         -4         -4 

したがって、がおよび に対して および 同様にx$a調整されると仮定すると、次のようになります。y$ax$by$b

va <- apply(merge(x$a + coredata(y$a - x$a)[1], y$a), 1, mean, na.rm = TRUE)
a <- zoo(va, as.Date(names(va)))


vb <- apply(merge(x$b + coredata(y$b - x$b)[1], y$b), 1, mean, na.rm = TRUE)
b <- zoo(vb, as.Date(names(vb)))

merge(a, b)

与える:

            a  b
2004-01-01 -3 -2
2004-02-01 -2 -1
2004-03-01 -1  0
2004-04-01  0  1
2004-05-01  1  2
2004-06-01  2  3
2004-07-01  3  4
2004-08-01  4  5
2004-09-01  5  6
2004-10-01  6  7
2004-11-01  7  8
2004-12-01  8  9
2005-01-01  9 10
于 2016-05-06T22:31:49.323 に答える