From simon.urbanek at r-project.org  Wed Oct 24 22:16:54 2012
From: simon.urbanek at r-project.org (Simon Urbanek)
Date: Wed, 24 Oct 2012 16:16:54 -0400
Subject: [Rd] Getting ordered factor levels from C
In-Reply-To: <574D6602-6F6E-4EB3-99A6-6E1651A65D1B@stat.wvu.edu>
References: <574D6602-6F6E-4EB3-99A6-6E1651A65D1B@stat.wvu.edu>
Message-ID: <47E3E25E-E4DE-451E-BC1F-71D0B857E64C@r-project.org>


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

> 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.

What are you using in C? AFAICS it works just fine:

> f=cfunction(c(foo="factor"), "return getAttrib(foo, R_LevelsSymbol);")
> f(lvls)
[1] "blue"  "green" "red"  

Cheers,
Simon



> 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
> 
> -- 
> Mark Lilback
> West Virginia University Department of Statistics
> mlilback at stat.wvu.edu
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
> 
> 



[Rd] Getting ordered factor levels from C
Simon Urbanek