na.locf и inverse.rle в Rcpp

Я хотел проверить, есть ли какой-нибудь существующий трюк дляna.locf (отzoo пакет),rle а такжеinverse.rle вRCpp?

Я написал цикл для реализации, например Я сделал реализациюna.locf(x, na.rm=FALSE, fromLast=FALSE) следующее:

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

Мне просто интересно, что, поскольку это довольно простые функции, кто-то, возможно, уже реализовал их вRCpp в лучшую сторону (может быть, избежать цикла) ИЛИ более быстрый путь?

Ответы на вопрос(1)

Ваш ответ на вопрос