Удалить уровень из фактора в r
Есть датасет Wine из пакета candisc. Мне необходимо сравнить с помощью t-теста два сорта вина grignolino и barbera по степени щелочности (переменная AlcAsh). Я пишу такой код:
t.test(Cultivar~AlcAsh,data=Wine)
Далее появляется ошибка "группирующий фактор должен иметь в точности два уровня". Соответственно, мне необходимо сделать так, чтобы в факторе Cultivar было два уровня, а не три, исключить лишний "barolo'. Я делаю следующее: преобразовываю Wine в WineBG:
WineBG<-Wine[Wine$Cultivar!='barolo',]
То есть делаю такой же датасет, только без данных про сорт barolo. Но в итоге у меня все равно в факторе Cultivar три уровня, включая тот же самый barolo. В чем моя ошибка?
str(WineBG$Cultivar)
Factor w/ 3 levels "barolo","grignolino"]
Ответы (3 шт):
Можно добавить
WineBG$Cultivar <- factor(WineBG$Cultivar)
Тогда уровни перепишутся.
Чтобы оставить старые метки уровней фактора и просто убрать те, для которых нет наблюдений, используйте
WineBG$Cultivar <- droplevels(WineBG$Cultivar)
Вы можете просто написать:
library('dplyr')
tw <- filter(Wine, Cultivar == 'grignolino' | Cultivar == 'barbera')