Полное удаление строк данных в R. Остановить таблицу (), возвращающую 0 для удаленных данных - PullRequest
4 голосов
/ 20 марта 2012

Я хочу создать круговую диаграмму из числа вхождений в столбце данных.Однако есть 5 слов, которые я хочу удалить, прежде чем сделать круговую диаграмму.У меня есть датафрейм, и я могу удалить эти строки, используя что-то вроде:

subset(df, tag != "rubbish")

Однако, если я тогда строю график, используя

pie(table(df$tag)

Мусор все еще появляется в круговой диаграмме, но с нулевыми экземплярами.

table(df$tag) до подмножества дает мне что-то вроде:

tag1  3
tag2  7
rubbish 9

и после:

tag1  3
tag2  7
rubbish 0

Есть ли способ полностью удалить мусор без table (), возвращая ноль?Я попытался table(df$tag, exclude="rubbish"), но я хочу удалить более 1 тега.

1 Ответ

5 голосов
/ 20 марта 2012

Я думаю, проблема в том, что df$tag является фактором или категориальной переменной.Удаление определенной категории из фактора не приводит к изменению уровней, связанных с фактором.table перебирает уровни, связанные с фактором.Даже если уровень пуст, table делает это, следовательно, rubbish 0.Решение состоит в том, чтобы воссоздать фактор после удаления тега:

subset(df, tag != "rubbish")
levels(df$tag)
df$tag = factor(df$tag)
levels(df$tag)
table(df$tag)

Я думаю, что это должно решить вашу проблему.

...