У меня есть два набора данных, каждый из которых содержит общее поле, но хотел бы получить все отсутствующие элементы одного набора данных по сравнению с другим.
Мой df1 выглядит так:
Account.ID Product.ID
1 A
1 B
1 C
1 D
2 A
2 E
2 F
3 B
3 D
И мой другой набор данных df2 выглядит следующим образом:
User.ID Product.ID
X A
X B
X C
Y A
Y U
Y I
Z B
Z A
Мой идеальный вывод будет выглядеть примерно так:
Account.ID User.ID Missing.Products
1 X Null
1 Y U
1 Y I
1 Z Null
2 X B
2 X C
2 Y U
2 Y I
2 Z B
3 X A
3 X C
3 Y A
3 Y U
3 Y I
3 Z A
По сути, я хотел бы получить все продукты пользователей. .ID, которые отсутствуют для каждого идентификатора Account.ID.
Вот мои образцы входных данных:
df1 <- tibble(Account.ID = c(1, 1, 1, 1, 2, 2, 2, 3, 3),
Product.ID = c("A", "B", "C", "D", "A", "E", "F", "B", "D"))
df2 <- tibble(User.ID = c("X", "X", "X", "Y","Y", "Y", "Z", "Z"),
Product.ID = c("A", "B", "C", "A", "U", "I", "B", "A"))
Любая помощь будет принята с благодарностью. Большое спасибо
Реальные данные здесь:
structure(list(Account.ID = c(1233248L, 25781287L, 14660627L,
14659269L, 9951007L, 3641831L), Product.ID = c(NA, NA, "01t60000002hNV4AAM",
"01t60000002hNV4AAM", "01t60000002hNV4AAM", "01t60000002hNV4AAM"
)), class = c("data.table", "data.frame"), row.names = c(NA,
-6L), .internal.selfref = <pointer: 0x00000000025a1ef0>)
structure(list(Case.ID = structure(c(4L, 4L, 4L, 4L, 4L, 4L), .Label =
c("Business Travel Spread Detection Platform",
"Citizens and Doctors Health Check", "Covid-19 Dashboard", "COVID19 Patient
Information Tracking",
"National Regional Operation Center - Covid-19"), class = "factor"),
Product.ID = c("8001661", "8003103", "8003145", "8004158",
"8004159", "8005365")), class = c("data.table", "data.frame"
), row.names = c(NA, -6L), .internal.selfref = <pointer: 0x00000000025a1ef0>)