Удалить строку, если она не уникальна, сохраняя значение другого столбца в качестве ссылки - PullRequest
0 голосов
/ 28 марта 2019

У меня есть набор данных, для которого я хочу проверить все строки с одинаковым значением столбца U и строки удаления, после которых столбец A.Будет лучше, если порядок строк не изменится.

Я пытался использовать duplicated(), но это не сработало.Есть лучший способ сделать это?Пожалуйста, предложите.

Входные данные

data <- read.table(header = TRUE, text ="U  A   B   C   D   E   F   G   H   I
A   C   1   2   31.9    32.1    1   32  32  32
                   A    D   1   3   31.9    32.1    1   32  32  32
                   B    C   1   4   31.9    32.1    1   32  32  32
                   B    D   1   5   31.9    32.1    1   32  32  32
                   ")

Ожидаемый результат

U   A   B   C      D       E    F   G   H   I
A   C   1   2   31.9    32.1    1   32  32  32
B   C   1   4   31.9    32.1    1   32  32  32

Ответы [ 2 ]

2 голосов
/ 28 марта 2019

duplicated действительно работает!

> data[!duplicated(data$U), ]
  U A B C    D    E F  G  H  I
1 A C 1 2 31.9 32.1 1 32 32 32
3 B C 1 4 31.9 32.1 1 32 32 32

В качестве альтернативы

> data[duplicated(data$U, fromLast = TRUE), ]
  U A B C    D    E F  G  H  I
1 A C 1 2 31.9 32.1 1 32 32 32
3 B C 1 4 31.9 32.1 1 32 32 32
1 голос
/ 28 марта 2019

Мы можем использовать unique от data.table

library(data.table)
unique(setDT(data), by = "U")
#   U A B C    D    E F  G  H  I
#1: A C 1 2 31.9 32.1 1 32 32 32
#2: B C 1 4 31.9 32.1 1 32 32 32
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...