1

The variable (Grade) takes three character values "A" "B" "C" and has been changed to a factor. I am trying to replace "C" with "D".

For instance, I am trying to run:

    data_set['Grade'][data_set['Grade'] == 'C'] <- "D"
    levels(data_set$Grade)

When checking levels of the factor, the levels are still "A" "B" "C". When working with a character variable that is a factor, is there a different approach to replacing a specific value of a column?

sili
  • 9
  • 2

2 Answers2

1

You can update the level label from "C" to "D". The code below should work:

x <- factor(LETTERS[1:3],levels = LETTERS[1:3])
levels(x)[levels(x) == "C"] <- "D"
0

would this help?

 vector <- as.factor(rep(c("A", "B" ,"C"), 3))
 
 vector
[1] A B C A B C A B C
Levels: A B C

> levels(vector) <- c("A", "B", "D")
 
 vector
[1] A B D A B D A B D
Levels: A B D

or:

### using fct_collapse:

vector <- as.factor(rep(c("A", "B" ,"C"), 3))

mydata <- data.frame(vector = vector)

head(mydata)

 vector
1      A
2      B
3      C
4      A
5      B
6      C

mydata$vector <- fct_collapse(mydata$vector,
                                          D = c("C"),
                                         ) 
head(mydata)

 vector
1      A
2      B
3      D
4      A
5      B
6      D
Larissa Cury
  • 806
  • 2
  • 11