2012-12-07 1 views
11

Для PHP существует similar question, но я работаю с R и не могу перевести решение моей проблемы.Как удалить все дубликаты, чтобы NONE остались в фрейме данных?

У меня есть этот фрейм данных с 10 строками и 50 столбцами, где некоторые из строк абсолютно идентичны. Если я использую уникальную на нем, я получаю одну строку - скажем - «тип», но я действительно хочу получить только те строки, которые появляются только один раз. Кто-нибудь знает, как я могу это достичь?

Я могу взглянуть на кластеры и тепловые карты, чтобы отсортировать их вручную, но у меня есть большие кадры данных, чем упомянутые выше (с до 100 строк), где это становится немного сложнее.

ответ

33

Это позволит извлечь строки, которые появляются только один раз (если ваш кадр данных называется df):

df[!(duplicated(df) | duplicated(df, fromLast = TRUE)), ] 

Как это работает: Функция duplicated тесты, будет ли отображаться линия по крайней мере, во второй раз начиная с первой. Если используется аргумент fromLast = TRUE, функция начинается с последней строки.

Оба логических результата объединяются с | (логическим или другим) в новый вектор, который указывает все строки, появляющиеся более одного раза. Результат этого отрицается с помощью !, тем самым создавая логические строки, указывающие линии, появляющиеся только один раз.

 Смежные вопросы

  • Нет связанных вопросов^_^