asjohnson - 8 months ago 61

R Question

I have a column of data that is a factor with levels A, B and C, I am interested in combining two of these levels into one factor, so it would become A and B, with B = B and C, or maybe a new variable A and D, with D = B and C. I can come up with plenty of ways to do this by looping through the column with if statements, but I feel like there should be a more elegant approach and I was wondering if someone could point me in the right direction.

Thanks as always SO.

Answer

Use `levels(x) <- ...`

to specify new levels, and to combine some previous levels. For example:

```
f <- factor(LETTERS[c(1:3, 3:1)])
f
[1] A B C C B A
Levels: A B C
```

Now combine "A" and "B" into a single level:

```
levels(f) <- c("A", "A", "C")
f
[1] A A C C A A
Levels: A C
```

Source (Stackoverflow)