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?