2015-03-31 2 views
1

Я пытаюсь комбинировать фиктивные переменные с нерегулярными временными рядами x.Слияние данных с нерегулярным временем

Если переменная-заглушка встречается на дату, которой нет x. Тогда фиктивная переменная будет происходить в следующей даты, присутствующей в х

Чтобы проиллюстрировать мою проблему, вот пример:

Давайте предположим, что у меня есть фиктивные переменные для события, которое произошло в 2000-12- 15 и 2000-2-18:

dummy <-zoo(1,as.Date(c("2000-12-15", "2000-12-18"))) 

и у меня есть временные ряды х:

x <-zoo(rnorm(5),as.Date(c("2000-12-15", "2000-12-16", 
"2000-12-17","2000-12-20", "2000-12-21"))) 

и то, что я хочу, чтобы после того, как комбинирование:

    x dummy 
2000-12-15 0.5431835  1 
2000-12-16 -1.5612897  0 
2000-12-17 -0.1944823  0 
2000-12-20 1.2124671  1 
2000-12-21 -1.2948487  0 

Для события на 2000-12-15, событие произошло на дату, которая присутствует в х. Поэтому здесь нет никаких проблем. Однако для случая, произошедшего в 2000-12-8, даты нет в x. Я хочу, чтобы фиктивная переменная переместилась на следующую дату, указанную в x, которая является 2000-12-20. Как я могу это сделать?

ответ

1
y <-zoo(1,as.Date(c("2000-12-15", "2000-12-18"))) 

x <-zoo(rnorm(5),as.Date(c("2000-12-15", "2000-12-16", 
         "2000-12-17","2000-12-20", "2000-12-21"))) 
data<-merge(x,y,all=TRUE) 

n<-length(data$x)-1 
for(i in 1:n){ 
    if(is.na(data$x[i])) 
    data$y[i+1]<-1 
} 

data<-data[complete.cases(data$x),] 
data[is.na(data$y),]<-0 
Смежные вопросы