こちらで、ある種のバグに悩まされてできなかった処理をやむなくPythonでやりました。
before (R)
xts という時系列データフレームのうち、数値については、補完がうまくいきます。
filled <- na.approx(object = xts$numeric, xout = grid, rule = 2)
filled <- na.locf(object = as.zoo(xts$numeric), xout = grid, rule = 2)
といってもlocfについては、なぜかダウンキャストしないと動かないんですが。
文字列については以下のように書いたら行けそうですが、仕様上はありなのに、動作しません。
filled <- na.locf(object = xts$chr, xout = grid, rule = 2)
ワークアラウンドがいくつか書いて荒れましたが、文字列の場合とxoutを指定する場合には無理でした。
after (Python)
Python Pandas版です。難なく動きました。
filled = xts['numric'].interpolate()
filled = xts['numric'].ffill()
filled = xts['chr'].ffill()
Rのライブラリは細分化しすぎていて、一個一個のくせが強すぎる。。。
この手のETL処理はPythonにするに限りますね。
追記
以下にU-SQLで同様の処理を行う場合を上げておきます。
U-SQLでLOCF