У меня есть объекты xts/zoo. каждый из них имеет различные переменные в течение другого промежутка времени. Я хочу создать единый временной ряд, включающий все меры во все времена, с NA для отсутствующих дат/переменных комбинаций. как это сделать? искусственный пример:конкатенирование/слияние временных рядов (в R)
library(xts)
x<-cbind(a=1:3,b=3:1)
rownames(x) = as.character(Sys.Date()-1:3)
y<-cbind(a=5:7,c=3:1)
rownames(y) = as.character(Sys.Date()-5:7)
xs=as.xts(x)
ys=as.xts(y)
#now what?
#desired outcome looks like:
a b c
2013-03-10 7 NA 1
2013-03-11 6 NA 2
2013-03-12 5 NA 3
2013-03-14 3 1 NA
2013-03-15 2 2 NA
2013-03-16 1 3 NA
# regular merge looks like that (adding an a.1 variable)
merge(xs,ys)
a b a.1 c
2013-03-10 NA NA 7 1
2013-03-11 NA NA 6 2
2013-03-12 NA NA 5 3
2013-03-14 3 1 NA NA
2013-03-15 2 2 NA NA
2013-03-16 1 3 NA NA
# simple concatenation ignores variable names and looks like that
c(xs,ys)
a b
2013-03-10 7 1
2013-03-11 6 2
2013-03-12 5 3
2013-03-14 3 1
2013-03-15 2 2
2013-03-16 1 3
# so what should I do?
Что происходит если 'xs' и' ys' оба имеют значение для 'a'? –
для моих целей - это нормально, если xs« выигрывает », а соответствующая точка данных в ys бросается/игнорируется. Я открыт для других видов поведения . – amit
'xts' имеет функцию' merge', которая выполняет 'inner',' outer', 'left 'и' right' сливается. Но ваша проблема не специфична для них. вам придется * написать свою собственную функцию *. – Arun