Hi,

On Thu, Jun 17, 2010 at 3:45 PM, Noah Silverman <noahsilver...@ucla.edu> wrote:
> Hi,
>
> I have a dataset where the results are coded ("yes", "no")  We want to
> do some machine learning with SVM to predict the "yes" outcome
>
> My problem is that if I just use the as.factor function to convert, then
> it reverses the levels.
>
> ----------------------
> x <- c("no", "no", "no", "yes", "yes", "no", "no")
>  as.factor(x)
> [1] no  no  no  yes yes no  no
> Levels: no yes
> ----------------------
> The SVM function (in the e1071 package) sees "no" as the first label and
> treats that as the positive outcome.
> The problem arises when we look at the decision values of the
> predictions.  Everything is gauged as values for "no".
>
> So, is there a way to force R to use my specified order when converting
> to factors?
>
> I've tried as.factor(x, levels=c("yes", "no")) but that throws errors
> about unused arguments.
>
> Any help?

Yes, look at the error message you're getting in your call to
`as.factor` more closely -- also look at the help for as.factor and
note there is no "levels" argument:

R> x <- c("no", "no", "no", "yes", "yes", "no", "no")
R> factor(x, levels=c('yes', 'no'))
[1] no  no  no  yes yes no  no
Levels: yes no

-steve

-- 
Steve Lianoglou
Graduate Student: Computational Systems Biology
 | Memorial Sloan-Kettering Cancer Center
 | Weill Medical College of Cornell University
Contact Info: http://cbio.mskcc.org/~lianos/contact

______________________________________________
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