Dies ist eine überarbeitete Fragemehrdeutig Überlastung Betreiber speziell in RCPP
In r und RCPP Ich habe eine Zeichenfolge deklariert als string def;
ich auch ein Datenrahmen Row_Labels
genannt haben, die aus zwei Buchstaben bestehenden Strings enthält, „AA“, „BB“ usw. Jetzt versuche ich, dies zu tun ..
#include <Rcpp.h>
#include <string.h>
//using namespace Rcpp;
//using namespace std;
// [[Rcpp::export]]
Rcpp::DataFrame process_Data(Rcpp::DataFrame df,Rcpp::DataFrame Row_Labels, Rcpp::DataFrame Column_Labels){
Rcpp::Rcout << "Test value from 'cout' " << std::endl;
Rcpp::Rcout << "Number of rows in df = " << df.nrow() << std::endl;
std::string abc;
abc = "test value";
std::string def;
def = "zz";
for(int i = 0; i < Row_Labels.nrow() ; i++)
{
def = Row_Labels[i]; // error here
Rcpp::Rcout << "Row_Labels = " << i;
Rcpp::Rcout << i << " " << Row_Labels[i] << std::endl; // error here
}
return Rcpp::DataFrame::create(Rcpp::_["a"]= df);
}
ich eine Störung erhalte, das ist ... use of overload operator'=' is ambiguous (with operand types 'string' (aka 'based_string <char, char traits <char>, allocator <char> >') and 'Proxy' (aka 'generic proxy<19>'))
ich schätze die Hilfe und hoffen, dass diese Revision mehr hilfreich
Verwenden Sie nicht 'using Namespace Rcpp; namespace std verwenden; 'Explizite' :: 'references verwenden. –
Stellen Sie vollständige und reproduzierbare Beispiele zur Verfügung. Das ist keiner. –
Danke. Ich habe die beiden Namespace-Anweisungen entfernt. Der Fehler tritt immer noch auf. Ich habe versucht, die komplette Funktion hier einzufügen, bekam aber Fehler. – K17