Удалить уровень из фактора в 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 шт):

Автор решения: aGricolaMZ

Можно добавить

WineBG$Cultivar <- factor(WineBG$Cultivar)

Тогда уровни перепишутся.

→ Ссылка
Автор решения: Ogurtsov

Чтобы оставить старые метки уровней фактора и просто убрать те, для которых нет наблюдений, используйте

WineBG$Cultivar <- droplevels(WineBG$Cultivar)
→ Ссылка
Автор решения: Valery

Вы можете просто написать:

library('dplyr')
tw <- filter(Wine, Cultivar == 'grignolino' | Cultivar == 'barbera')
→ Ссылка