Очистка набора данных, но в описательной статистике сохраняется информация об удаленных данных - PullRequest
2 голосов
/ 23 апреля 2019

У меня есть следующие данные:

Animal Father Weight
1      John   55
2      John   60
3      Bruce  55
4      Peter  66
5      Sand   35
6      Sand   45
7      Loki   35
8      Loki   35

Я хочу удалить все строки, в которых столбец Father появляется только один раз. Для этого я сделал следующее:

New.dt= dt[!table(dt$Father)[dt$Father] <= 1, ]

Ладно, отлично работает:

Animal Father Weight
    1      John   55
    2      John   60
    5      Sand   35
    6      Sand   45
    7      Loki   35
    8      Loki   35

Но когда я делаю статистику для нового dataset(New.dt), информация об удаленных отцах остается. Как это:

summary(New.dt$Father)

John  Bruce Peter Sand Loki
  2     0     0     2    2

Это для всей статистики, но я не хочу использовать эту фантомную информацию. Как мне сделать, чтобы исключить эту информацию?

1 Ответ

3 голосов
/ 23 апреля 2019

проблема в том, что столбец Father имеет тип factor.Если вы сначала преобразовали его в символ, у вас не должно возникнуть таких проблем:

dt$Father <- as.character(dt$Father)
New.dt= dt[!table(dt$Father)[dt$Father] <= 1,]
summary(New.dt$Father)

Вы можете избежать factor с самого начала:

  • Если вы создадитеваши данные с помощью data.frame вы можете установить stringsAsFactor = FALSE.

  • Если вы читаете ваш файл из CSV-файла (или аналогичного) с помощью read.table, вы также можете установить stringsAsFactor = F.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...