na.locf e inverse.rle en Rcpp
Quería verificar si hay algún truco preexistente parana.locf
(dezoo
paquete),rle
yinverse.rle
enRCpp
?
Escribí un bucle para implementar, p. Hice la implementación dena.locf(x, na.rm=FALSE, fromLast=FALSE)
como sigue:
#include <Rcpp.h>
using namespace Rcpp;
//[[Rcpp::export]]
NumericVector naLocf(NumericVector x) {
int n=x.size();
for (int i=1;i<n;i++) {
if (R_IsNA(x[i]) & !R_IsNA(x[i-1])) {
x[i]=x[i-1];
}
}
return x;
}
Me preguntaba si estas funciones son bastante básicas, es posible que alguien ya las haya implementado enRCpp
de una mejor manera (puede ser evitar el bucle) O una forma más rápida?