Удаление повторяющейся информации в столбце на основе значения другого столбца - PullRequest
2 голосов
/ 08 мая 2019

У меня есть эти два кадра данных:

Dt1

barcode ID
1       AA
2       AA
3       AA
4       BB
5       BB
6       CC
7       DD
8       EE

Dt 2

barcode weight
1       55
3       45
6       35
7       80

Я хотел бы объединить кадры данных таким образом, чтобы идентификаторы,Повторяется или нет, будет удален на основе штрих-кодов, мой окончательный кадр данных будет выглядеть так:

   barcode  ID 
    4       BB   
    5       BB
    8       EE

Я пробовал несколько команд, но любая работала.

Ответы [ 2 ]

5 голосов
/ 08 мая 2019

Использование

Idremove = Dt1$ID[Dt1$barcode %in% Dt2$barcode]
Dt1 = Dt1[!Dt1$ID %in% Idremove, ]
1 голос
/ 08 мая 2019

Tidyverse решение:

library(tidyverse)

Dt1%>%
  group_by(ID)%>%
  filter(all(!barcode %in% Dt2$barcode))%>%
  ungroup()

# A tibble: 3 x 2
  barcode ID   
    <int> <chr>
1       4 BB   
2       5 BB   
3       8 EE   

Данные:

Dt1 <- tribble(
  ~barcode, ~ID,
     1L,       'AA',
     2L,       'AA',
     3L,       'AA',
     4L,       'BB',
     5L,       'BB',
     6L,       'CC',
     7L,       'DD',
     8L,       'EE')

Dt2 <- tribble (
  ~barcode, ~weight,
    1L,       55L,
    3L,       45L,
    6L,       35L,
    7L,       80L)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...