Using dnorm with RcppArmadillo
VonR
, Ich versuche zu rennensourceCpp
in dieser Datei:
#include <RcppArmadillo.h>
// [[Rcpp::depends(RcppArmadillo)]]
using namespace arma;
using namespace Rcpp;
// [[Rcpp::export]]
vec dnormLog(vec x, vec means, vec sds) {
int n = x.size();
vec res(n);
for(int i = 0; i < n; i++) {
res[i] = log(dnorm(x[i], means[i], sds[i]));
}
return res;
}
Sehendiese Antwort um zu sehen, woher ich die Funktion habe. Dies löst den Fehler aus:
no matching function for call to 'dnorm4'
Welche ist der genaue Fehler, den ich mithilfe der Schleife verhindern wollte, da in der angegebenen Antwort angegeben ist, dassdnorm
wird nur in Bezug auf das erste Argument vektorisiert. Ich fürchte, die Antwort ist offensichtlich, aber ich habe versucht, @ hinzuzufügR::
Vor demdnorm
, versucht mitNumericVector
Anstatt vonvec
, ohne zu benutzenlog()
vor. Kein Glück. Hinzufügen vonR::
Vordnorm
erzeugt einen separaten Fehler:
too few arguments to function call, expected 4, have 3; did you mean '::dnorm4'?
Welches istnich behoben durch Ersetzen vondnorm
oben mitR::dnorm4
.