Dear R's friends,

I have a C code with a lot of SEXP objects and I want to return them as a list.
Does any function I can use in SET_VECTOR_ELT() as mkChar() in
SET_STRING_ELT()? For example, this is my code,

SEXP my_code(){
  int i;
  SEXP a1, a2, a3, res, res_names;
  char *names[3] = {"a1", "a2", "a3"};

  PROTECT(a1 = allocVector(REALSXP,  3));
  PROTECT(a2 = allocVector(REALSXP,  4));
  PROTECT(a3 = allocVector(REALSXP,  5));
  PROTECT(res = allocVector(LISTSXP, 3));
  PROTECT(res_names = allocVector(STRSXP, 3));
  for(i = 0; i < 3; i++){
    SET_STRING_ELT(res_names, i, mkChar(names[i])); 
/* What should I do at here? May I use eval()?
    SET_VECTOR_ELT(res, i, ????);
*/
  }

  setAttrib(res, R_NamesSymbol, ret_names);

  UNPROTECT(5);
  return(res);
}


I need a function to replace these things,
    SET_VECTOR_ELT(res, 0, a1);
    SET_VECTOR_ELT(res, 0, a2);
    SET_VECTOR_ELT(res, 0, a3);
    ...
Does it possible? Thanks.

Sincerely,
Wei-Chen Chen

==========
Don't ever let somebody tell you, "you can't do something."
Not even me. You got a dream.  You gotta protect it.
People can't do something themselves. They wanna tell you,
"you can't do it." If you want something, go get it, period!
-- Chris Gardner (Will Smith in The Pursuit of Happyness)

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to