To: Martin Maechler <maechler@stat.math.ethz.ch>
Subject: Re: [R] coercing factors to matrix() --> num/char ? -- inconsistencies|?
From: Peter Dalgaard BSA <p.dalgaard@biostat.ku.dk>
Date: 23 Jun 1999 12:17:02 +0200
In-Reply-To: Martin Maechler's message of "Wed, 23 Jun 1999 10:02:07 +0200"
Martin Maechler <maechler@stat.math.ethz.ch> writes:
[On R-help, not -devel??]
> The old factor() wars......
> {{maybe don't just report that factor()s are broken by design..}}
...
> 1) we don't allow {in R as in S-plus 3.x} arithmetic on factors, i.e.
> 1 + ff
> gives an error, and I think most of us believe this is as desired.
> {{if one really wants the factor codes, use codes(ff) ...}}.
As.integer(), you mean. Codes() has some "portable brain damage"
associated with it.
We do however have indexing with implicit integer coercion, e.g.
> ff<-factor(1:3,labels=3:1)
> letters[ff]
[1] "a" "b" "c"
> >From this logic, coercing to a matrix should coerce to character rather
> than integer/numeric codes.
Hm. I'm not sure there really is much logic in this... Factors are
sometimes character-like, sometimes integer-like.
> A: both R and S-plus 3.4 give an INTEGER matrix (with codes(.)) for
>
> rbind(ff)
> cbind(f2)
>
> B: R gives an integer matrix but S-plus a character one for
>
> matrix(ff)
...
> So far the current behavior which I don't like.
> I believe all matrix coercions should return mode "character" objects
> for consistency with other coercion behavior of factors.
>
> S(-plus) seems particularly inconsistent in doing different coercions
> for cbind() and matrix().
>
> Opinions ? Proposals ?
Not really sure whether the problem is that R is consistent with
itself or inconsistent with S. If we change as you suggest, we'll
have two incompatibilities instead of one...
In what kinds of code would this become relevant?
BTW, we also have this little item:
> matrix(ff)
[,1]
[1,] 1
[2,] 2
[3,] 3
> array(ff,c(3,1))
[,1]
[1,] "3"
[2,] "2"
[3,] "1"
(In Splus, matrix() *calls* array() so this won't happen)
-- O__ ---- Peter Dalgaard Blegdamsvej 3 c/ /'_ --- Dept. of Biostatistics 2200 Cph. N (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - (p.dalgaard@biostat.ku.dk) FAX: (+45) 35327907 -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request@stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._