Accessing row and col names of SEXP objects
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
______________________________________________ R-help at stat.math.ethz.ch mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help
Brian D. Ripley, ripley at stats.ox.ac.uk 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