Given that your labels are "no" and "yes", what do you expect R to
do?  To quote a well-known fortune, "R is lacking a mind_read() function!"

    cheers,

        Rolf Turner

On 01/23/2013 10:58 PM, Francesco Sarracino wrote:
Thanks,
this works! but I am surprised that R has such a strange behavior and that
there is no way to control it.
BTW, also as.integer(pp)-1 works!
Still, it doesn't look to me as a first best.
At any rate, thanks a lot for your help.
f.


On 23 January 2013 10:53, D. Rizopoulos <d.rizopou...@erasmusmc.nl> wrote:

check also

pp <- rep(0:1, 10)
pp <- factor(pp, levels=(0:1), labels=c("no","yes"))

unclass(pp)
unclass(pp) - 1


Best,
Dimitris


On 1/23/2013 10:48 AM, Francesco Sarracino wrote:
Dear Dimitris,

thanks for your quick reply. I've tried the solutions proposed in 7.10
How do I convert factors to numeric?

as.numeric(as.character(pp))
and
as.numeric(levels(pp))[as.integer(pp)]

However, whatever I do, I get "Warning message: NAs introduced by
coercion"
and the output is a vector of NA.

Any ideas?
f.



On 23 January 2013 10:39, D. Rizopoulos <d.rizopou...@erasmusmc.nl
<mailto:d.rizopou...@erasmusmc.nl>> wrote:

     Check R FAQ 7.10: How do I convert factors to numeric?


     I hope it helps.

     Best,
     Dimitris


     On 1/23/2013 10:33 AM, Francesco Sarracino wrote:
      > Dear R listers,
      >
      > I am trying to compute the mean of a dummy variable that is
     encoded as a
      > factor. However, even though the levels of my factor are 0 - 1,
     when I
      > compute the mean (after coercing the factor to be
      > numeric), R changes 0 into 1 and 1 into yes, thus altering my
     expected
      > result.
      >
      > Please, consider the following working example:
      > pp <- rep(0:1, 10)
      > pp <- factor(pp, levels=(0:1), labels=c("no","yes"))
      > mean(pp) #this won't work because the argument is not numeric or
     logical
      > mean(as.integer(pp)) # this computes the average, but not on the
     range 0-1,
      > but 1-2. Indeed, the result is 1.5 and not 0.5 as expected.
      >
      > What am I doing wrong?
      > Thanks in advance for your kind support,
      > f.
      >
      >

     --
     Dimitris Rizopoulos
     Assistant Professor
     Department of Biostatistics
     Erasmus University Medical Center

     Address: PO Box 2040, 3000 CA Rotterdam, the Netherlands
     Tel: +31/(0)10/7043478 <tel:%2B31%2F%280%2910%2F7043478>
     Fax: +31/(0)10/7043014 <tel:%2B31%2F%280%2910%2F7043014>
     Web: http://www.erasmusmc.nl/biostatistiek/




--
Francesco Sarracino, Ph.D.
https://sites.google.com/site/fsarracino/
--
Dimitris Rizopoulos
Assistant Professor
Department of Biostatistics
Erasmus University Medical Center

Address: PO Box 2040, 3000 CA Rotterdam, the Netherlands
Tel: +31/(0)10/7043478
Fax: +31/(0)10/7043014
Web: http://www.erasmusmc.nl/biostatistiek/




______________________________________________
R-help@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.

Reply via email to