na.locf und inverse.rle in Rcpp

Ich wollte überprüfen, ob es einen bereits existierenden Trick für gibtna.locf (vonzoo Paket),rle undinverse.rle imRCpp?

Ich habe eine Schleife geschrieben, die implementiert werden soll, z. Ich habe die Implementierung vonna.locf(x, na.rm=FALSE, fromLast=FALSE) wie folgt:

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

Ich habe mich nur gefragt, ob jemand diese Funktionen bereits implementiert hat, da es sich um recht grundlegende Funktionen handeltRCpp in einer besseren Art und Weise (kann die Schleife vermeiden) ODER eine schnellere Art und Weise?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage