In einer Funktion möchte ich numerische Werte berechnen, ihnen Namen geben und eine NumericVector
in Rcpp sortierte zurückgeben. Ich kann die Vektoren sortieren ( damit ), aber die Reihenfolge der Namen der Werte bleibt gleich.
library(Rcpp)
x <- c(a = 1, b = 5, c = 3)
cppFunction('
NumericVector foo(NumericVector x) {
std::sort(x.begin(), x.end());
return(x);
}')
foo(x)
## a b c
## 1 3 5
Ich möchte, dass die Funktion Folgendes zurückgibt:
## a c b
## 1 3 5
Ist es möglich? Wie kann ich das erreichen?
Antworten:
Mit dem Tipp, den Dirk in seinem Kommentar gab, fand ich heraus, dass die Namen von
x
nur ein weiterer Vektor sind. Also suchte ich nach einem Vektor mit einem anderen Vektor. Mit dieser SO-Antwort komme ich zu folgenden zwei Lösungen:quelle