Удаление дублированных строк данных фрейма в R [закрыто]

71

Как я могу удалить повторяющиеся строки из этого примера фрейма данных?

A   1
A   1
A   2
B   4  
B   1
B   1
C   2
C   2

Я хотел бы удалить дубликаты на основе обоих столбцов:

A   1
A   2
B   4
B   1
C   2

Порядок не важен.

Jana
источник
@ whuber разве это не должно быть перенесено в ТАК?
ЛОП
@Llopis Да, но сейчас уже слишком поздно делать это - и было слишком поздно, когда мы его изначально закрыли. Этот вопрос рассматривался (пограничный) по теме много лет назад, но в настоящее время он будет быстро перенесен.
whuber

Ответы:

115

unique()действительно отвечает на ваш вопрос, но другая связанная и интересная функция для достижения той же цели duplicated().

Это дает вам возможность посмотреть, какие строки дублируются.

a <- c(rep("A", 3), rep("B", 3), rep("C",2))
b <- c(1,1,2,4,1,1,2,2)
df <-data.frame(a,b)

duplicated(df)
[1] FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE

> df[duplicated(df), ]
  a b
2 A 1
6 B 1
8 C 2

> df[!duplicated(df), ]
  a b
1 A 1
3 A 2
4 B 4
5 B 1
7 C 2
Рахул
источник
2
Спасибо за упоминание «дублированной» функции. Его можно использовать для удаления дублированных строк на основе подмножества столбцов.
Джоко
51

Вы ищете unique().

a <- c(rep("A", 3), rep("B", 3), rep("C",2))
b <- c(1,1,2,4,1,1,2,2)
df <-data.frame(a,b)
unique(df)

> unique(df)
  a b
1 A 1
3 A 2
4 B 4
5 B 1
7 C 2
Бернд Вайс
источник
1
Спасибо Бернд. Я думал, что уникальный может быть применен только для конкретного столбца. Я не знал, что его можно использовать и для всего фрейма данных. Еще раз спасибо
Яна