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
в лучшую сторону (может быть, избежать цикла) ИЛИ более быстрый путь?