Why does the following show a class attribute of "character" when using the interpreter:
x <- data.frame(hat=1:10) class(rownames(x)) ## returns [1] "character" but when called from c/cpp, the rownames attribute has no class attribute, and is in fact a vector of INTSXP? > .Call("print_class_of_rownames", x, package = "test") length(x): 10 TYPEOF(x): 13 R_ClassSymbol is null. NULL > is this the intended behaviour? -Whit here is my test code: SEXP print_class_of_rownames(SEXP dataframe_sexp) { SEXP x = getAttrib(dataframe_sexp,install("row.names")); cout << "length(x): " << length(x) << endl; cout << "TYPEOF(x): " << TYPEOF(x) << endl; if(getAttrib(x, R_ClassSymbol)==R_NilValue) { cout << "R_ClassSymbol is null." << endl; } else { cout << "R_ClassSymbol is a good value." << endl; } return R_NilValue; } ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel