[R] strange question...

Seth Falcon sfalcon at fhcrc.org
Wed Feb 1 22:47:45 CET 2006


On  1 Feb 2006, ana.pmartins at ine.pt wrote:
> am$e_isell <- factor( with( am, ifelse( e_iacc == 1 & C5 == 1, 1,
> 0)))
>
>
> cbind( am$e_isell[4256], am$C6[4256])
>
> [,1] [,2]
>
> [1,] "2"  "1"
>
>
>
> (????????????? :(  )
>
>
>
> Does anyone understand why this happens?

A factor is an integer vector with levels.  Although there are many
operations one can perform on a factor that will "work" because of
automagic convertion of the factor to its underlying integer vector,
it is rarely useful, IMHO.

The following may help you see what is going on:

f = factor(c(0, 1, 1, 0))

unclass(f)

as.numeric(f)
as.integer(f)

as.character(f)
as.integer(as.character(f))

+ seth




More information about the R-help mailing list