na.locf e inverse.rle em Rcpp

Eu queria verificar se existe algum truque pré-existente parana.locf (porzoo pacote),rle einverse.rle noRCpp?

Eu escrevi um loop para implementar, por exemplo Eu fiz a implementação dena.locf(x, na.rm=FALSE, fromLast=FALSE) do seguinte modo:

#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;
}

Eu só estava pensando que, como essas são funções básicas, alguém já pode tê-las implementado noRCpp de uma maneira melhor (pode evitar o loop) OU de uma maneira mais rápida?

questionAnswers(1)

yourAnswerToTheQuestion