0

I have the following code in R:

a <- c("No", "Yes", "No", "Yes", "Yes")
af <- as.factor(a)

Then

levels(af)

Returns

[1] "No" "Yes"

The problem is that caret::confusionMatrix considers the first factor as the positive one, if you don't pass a positive argument.

How can I swap the levels, so that the first one is "Yes"?

robertspierre
  • 3,218
  • 2
  • 31
  • 46
  • 1
    Maybe a duplicate of [Reorder levels of a factor without changing order of values](https://stackoverflow.com/q/2375587/4752675) – G5W May 29 '21 at 18:05

2 Answers2

1

Use the factor() function:

a <- c("No", "Yes", "No", "Yes", "Yes")
af <- factor(a, levels = c("Yes","No"))
VitaminB16
  • 1,174
  • 1
  • 3
  • 17
0

Use forcats library

library(forcats)
a <- c("No", "Yes", "No", "Yes", "Yes")
af <- as.factor(a)

af
[1] No  Yes No  Yes Yes
Levels: No Yes

fct_recode(af, Yes = "No", No = "Yes")
[1] Yes No  Yes No  No 
Levels: Yes No
Pete Kittinun
  • 593
  • 3
  • 15