[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