On 06/03/2014 1:47 PM, Sandip Nandi wrote:
Hi ,

I am trying to create a dataframe in C and sebd it back to R.  Can anyone
point me to the part of the source code where it is doing ,  let me explain
the problem I am having .

--------------------------------------------------------------------
My simple implementation is like this

SEXP formDF() {

SEXP dfm ,df , dfint , dfStr,lsnm;
char *ab[3] = {"aa","vv","gy"};
int sn[3] ={99,89,12};
char *listnames[2] = {"int","string"};
int i;


PROTECT(df = allocVector(VECSXP,2));
PROTECT(dfint = allocVector(INTSXP,3));
PROTECT(dfStr = allocVector(STRSXP,3));
PROTECT(lsnm = allocVector(STRSXP,2));

SET_STRING_ELT(lsnm,0,mkChar("int"));
SET_STRING_ELT(lsnm,1,mkChar("string"));

for ( i = 0 ; i < 3; i++ ) {
SET_STRING_ELT(dfStr,i,mkChar(ab[i]));
INTEGER(dfint)[i] = sn[i];
}
SET_VECTOR_ELT(df,0,dfint);
SET_VECTOR_ELT(df,1,dfStr);
setAttrib(df,R_NamesSymbol,lsnm);
//PROTECT(dfm=LCONS(dfm,list3(dfm,R_MissingArg,mkFalse())));

UNPROTECT(4);

dfm = PROTECT(lang2(install("data.frame"),df));
SEXP res = PROTECT(eval(dfm,R_GlobalEnv));

UNPROTECT(2)

}

------------------------------------------------------------------------
It works fine but i want it the other way

the output is
print(result)
   int string
1  99     aa
2  89     vv
3  12     gy


I want it in transposed . like

dft <- as.data.frame(t(result))

*Can I do the transpose it from C itself ? Which part of code I should look
a*t .

What My objective ?

*Reading  rows of a table and create a dataframe out of it .  R is embedded
in database so cannot call the odbc .  Need to implement that part .
Database gives me API only to get a whole row at once .*

What you are asking for isn't a normal dataframe. Dataframe columns are vectors all of a type. You want the first row to be a string, the second row to be an integer. You can't do that with simple atomic columns, and you probably don't want to mess with the alternative (which is to have your columns be lists), because no user will know how to deal with that.

Duncan Murdoch

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to