Filling in Missing Date Values (tidyjs or otherwise)

I try to use tidyjs to complete a date sequence and it correctly fills in the missing data (yay!), but I end up overwriting the rest of the data (boo!)

Do you have a good idea (in tidyjs or otherwise) for filling in missing date data while retaining the existing data values?

That’s odd, as doing it long hand with expand, leftJoin also fails the Close

I guess loDash could fix it

{
  let td = T.tidy(
    aaplMissing,
    T.select(["Date", "Close"]),
    T.complete({Date: T.fullSeqDate('Date', 'day', 1)}, {Close: 0})
  )

  return td.map( (d) => {
    let where = _.findIndex(aaplMissing, {Date: d.Date} )
    return {Date:d.Date, Close: (where == -1)?0:aaplMissing[where].Close}
  })
}

Yeap, ugly code :smiley:

Cool that works, but I agree it’s annoying that it is a little unruly, having to go back and match up against the indices of the original data. Surprised that the tidyjs method can’t handle it (at least how I approached it).

I’m coming from R, so tidyjs was approachable, bu I wonder if anyone has experience doing this sort of thing in Arquero.

I think it is a bug in tidyJS as all the docs say it should work as advertised.

Arquero might do it but I have not used it.

I’ll see if I can submit an issue about tidyjs. Thanks for your help!