[R] initialize a factor vector

Patrick Burns pburns at pburns.seanet.com
Sat Jul 19 18:44:40 CEST 2008


Somehow the mail system garbled my last sentence.
It should read:

You want to call 'factor' on the result of the call to 'c'.

Pat

Patrick Burns wrote:
> 'c' does not have a method for factors.  If you were
> to try implementing one, you would probably quickly
> figure out why not.
>
> You want to call 'call' factor on the result of the call
> to 'c'.
>
>
> Patrick Burns
> patrick at burns-stat.com
> +44 (0)20 8525 0696
> http://www.burns-stat.com
> (home of S Poetry and "A Guide for the Unwilling S User")
>
> Johannes Huesing wrote:
>> I have found that factor vectors are shy beasts.
>>
>> Consider:
>>
>>  
>>> empty <- factor(levels=c("eins", "zwei"))
>>> value <- factor("eins", levels=c("eins", "zwei"))
>>> c(empty, value)
>>>     
>> [1] 1
>>  
>>> empty[1] <- value
>>> empty
>>>     
>> [1] eins
>> Levels: eins zwei
>>  
>> I could not exactly predict this behaviour, but ?c says:
>>
>>     The output type is determined from the highest type of the
>>      components in the hierarchy NULL < raw < logical < integer < real
>>      < complex < character < list < expression.
>> As factor is a class (of the whole vector) and not a type (of a 
>> single element), c does not seem to preserve the object information, 
>> i.e. there
>> does not seem to be a c.factor, correct?
>>
>>
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide 
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
>



More information about the R-help mailing list