Es gibt viele Beispiele für das Senden von ganzen Zahlen an C ++ von R, aber keine, die ich beim Senden von Strings finden kann.
Was ich tun möchte, ist ganz einfach:
%Vor%Das gibt mir den folgenden Compiler-Fehler:
loadFile.cpp: 50: Fehler: Konvertieren von 'SEXPREC *' in 'const char *' für Argument
nicht möglich '1' bis 'FILE * fopen (const char *, const char *)'
Also muss ich den Dateinamen in ein const char*
umwandeln? Verwende ich CHAR?
Hier ist eine Methode, die R Internals verwendet:
%Vor%kompiliere mit R CMD SHLIB foo.c, dann dyn.load ("foo.so") und .Call ("falt", "Hallo Welt")
Beachten Sie, dass das erste (0.) Element des SEXP übergeben wird und die String-Elemente übernimmt und CHAR es konvertiert. Meistens aus dem Writing R Extensions Guide entnommen.
Barry
Shane zeigt einen guten Trick mit Umgebungen, aber Chris hat wirklich gefragt, ob er eine Zeichenfolge von R nach C ++ als Parameter senden könnte. Lasst uns das beantworten mit Rcpp und inline :
%Vor% Dies zeigt den Vorlagen-Helper as<T>
(um Material von R zu bekommen) und das Komplement wrap()
, um zu R zurückzukehren. Wenn Sie Rcpp , das ist alles, was da ist.