[R] More questions about R extension programming
Edzer J. Pebesma
e.pebesma at geog.uu.nl
Mon Oct 6 10:03:26 CEST 2003
I have been strugling to get character data in and out of c functions
using the .Call() interface, but I don't succeed getting them back
into R.
The example:
#include "R.h"
#include "Rdefines.h"
char *cp = "xxxyyyy";
SEXP do_char(SEXP c) {
int i;
SEXP s;
for (i = 0; i < LENGTH(c); i++)
printf("%d:[%s]\n", i, CHARACTER_DATA(STRING_ELT(c,i)));
/* CHARACTER_VALUE() does not work here! */
s = NEW_CHARACTER(1);
CHARACTER_POINTER(s) = cp;
c = NEW_CHARACTER(3);
SET_STRING_ELT(c,0, s);
SET_STRING_ELT(c,1, s);
SET_STRING_ELT(c,2, s);
return c;
}
works only for the first half; but I can't manage to fill the string
and return it back.
Note that I had to use CHARACTER_DATA instead of CHARACTER,
which Thomas Lumley suggested last Saturday.
--
Edzer
More information about the R-help
mailing list