>From the file defining GetColNames: /* "GetRowNames" and "GetColNames" are utility routines which * locate and return the row names and column names from the * dimnames attribute of a matrix. They are useful because
You have not applied them to the dimnames attribute. Extracting dimnames attributes _is_ covered in R-exts: SEXP dimnames=getAttrib(ts, R_DimNamesSymbol), colnames = VECTOR_ELT(dimnames, 1); for (j = 0; j < length(colnames); j++) printf("%s\n",CHAR(STRING_ELT(colnames, j))); looks about right, although you should do something if the colnames or dimnames are NULL. On Wed, 17 Dec 2003, Whit Armstrong wrote: > Can someone lend me a hand with extracting the dimnames from a SEXP? I've > looked through R-exts, but I couldn't find an example. > > Here is the code I'm using to grab the jth column name and print it, but the > colnames I'm getting are garbage. > > None of the following are working. > > void printInfo(SEXP ts) { > > int j; > > for (j=0; j<col; j++) { > printf("%s\n",CHAR(STRING_ELT(GetColNames(ts), j))); > printf("%s\n",CHAR(VECTOR_ELT(GetColNames(ts), j))); > printf("%s\n",CHARACTER_DATA(STRING_ELT(GetColNames(ts), j))); > printf("%s\n",CHARACTER_DATA(VECTOR_ELT(GetColNames(ts), j))); > } > > } > > Here is the object I'm passing in: > > tmp <- matrix(rnorm(100),ncol=5) > colnames(tmp) <- c("tmp","a","b","c","d") > rownames(tmp) <- 1:100 > .Call("printInfo",tmp) > > Thanks for your help. > > Regards, > Whit > > ______________________________________________ > [EMAIL PROTECTED] mailing list > https://www.stat.math.ethz.ch/mailman/listinfo/r-help > > -- Brian D. Ripley, [EMAIL PROTECTED] Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595 ______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help