Подтвердить что ты не робот

Группировка 2 уровней фактора R

У меня есть столбец данных, который является фактором с уровнями A, B и C. Меня интересует объединение двух из этих уровней в один фактор, поэтому он станет A и B, с B = B и C, или возможно, новую переменную A и D, с D = B и C. Я могу придумать много способов сделать это, перейдя через столбец с операторами if, но я чувствую, что должен быть более элегантный подход, и мне было интересно если кто-то может указать мне в правильном направлении.

4b9b3361

Ответ 1

Используйте levels(x) <- ..., чтобы указать новые уровни и объединить некоторые предыдущие уровни. Например:

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

Теперь объедините "A" и "B" в один уровень:

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

Ответ 2

Если вы используете трубы dplyr, вы можете использовать пакет forcats.

library(forcats)
f %>% fct_collapse(A = c("A","B"))

#[1] A A C C A A
#Levels: A C

Ответ 3

Библиотека rockchalk может объединять уровни. Я думаю, что это здорово, если вы хотите объединить B и C вместе в одном из факторов:

library(rockchalk)
combineLevels(mydf$facVar,levs = c("B", "C"), newLabel = c("BandC") )