Другие объяснили, что происходит и как это исправить, я просто хочу показать, почему это желаемое значение по умолчанию.
Рассмотрим следующий пример кода:
mydata <- data.frame(
x = factor( rep( c(0:5,0:5), c(0,5,10,20,10,5,5,10,20,10,5,0))),
sex = rep( c('F','M'), each=50 ) )
mydata.males <- mydata[ mydata$sex=='M', ]
mydata.males.dropped <- droplevels(mydata.males)
mydata.females <- mydata[ mydata$sex=='F', ]
mydata.females.dropped <- droplevels(mydata.females)
par(mfcol=c(2,2))
barplot(table(mydata.males$x), main='Male', sub='Default')
barplot(table(mydata.females$x), main='Female', sub='Default')
barplot(table(mydata.males.dropped$x), main='Male', sub='Drop')
barplot(table(mydata.females.dropped$x), main='Female', sub='Drop')
Который производит этот участок:
Теперь, что является более значимым сравнением, 2 графика слева? или 2 участка справа?
Вместо того, чтобы сбрасывать неиспользуемые уровни, может быть лучше переосмыслить то, что вы делаете. Если основной целью является получение количества х, то вы можете использовать sum
вместо поднабора и получения сводки. И насколько значимым может быть график для переменной, для которой вы уже указали одно значение?