On Jan 23, 2013, at 1:58 AM, 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.
I think it is rather strange that you are criticising R because the
mean or sum functions won't coerce factors to numeric class. R is
already very loosely typed. It has a fairly limited number of object
classes and there is widespread class coercion when it is appropriate.
Can you explain why you believed factors or by logical extension
character classed variables should get implicitly coerced by all
mathematical functions?
--
David.
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/
--
Francesco Sarracino, Ph.D.
https://sites.google.com/site/fsarracino/
[[alternative HTML version deleted]]
______________________________________________
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.
David Winsemius, MD
Alameda, CA, USA
______________________________________________
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.