Skip to content

Getting ordered factor levels from C

3 messages · Simon Urbanek, Mark Lilback

#
I'm working on an R package in C and can't seem to get the same level information about a factor that the R console displays.

If I define a factor as:

lvls <- factor(c('red','blue','blue','green','red'), c('blue','green','red'), ordered=TRUE)

When I get the "levels" attribute in C, I get back the the first vector, not the second. If I run attr(lvls,"levels") in R, I get back the second vector. There are no attributes besides class and levels, so how do I get the list of levels in the correct order?

Thanks
#
On Oct 24, 2012, at 2:14 PM, Mark Lilback wrote:

            
What are you using in C? AFAICS it works just fine:
[1] "blue"  "green" "red"  

Cheers,
Simon
#
I was banging my head for an hour on this. I just pasted the code into an email and see that I was getting the contents of the SEXP for the factor, not the one returned by getAttrib. Sorry for the waste of time.
On Oct 24, 2012, at 4:16 PM, Simon Urbanek <simon.urbanek at r-project.org> wrote: