Senden einer Zeichenkette von R nach C ++

8

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?

    
Chris Wheadon 16.09.2010, 13:41
quelle

2 Antworten

7

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

    
Spacedman 16.09.2010, 14:17
quelle
6

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.

    
Dirk Eddelbuettel 16.09.2010 14:37
quelle

Tags und Links