У меня есть два фрейма данных, и я хотел бы знать, сколько у меня совпадающих элементов для каждой группы.
Итак, мой первый df (назовем его df1 ) выглядит так:
Account.ID Product.ID
1 A
1 B
1 C
1 D
1 E
1 F
2 B
2 D
2 F
3 D
3 E
Мой другой df ( df2 ) содержит информацию для пользователей и продуктов:
User.ID Product.ID
X A
X B
X C
X D
X E
X F
Y B
Y D
Y G
Z K
Z C
Что я хотел бы сделать заключается в подсчете количества Product.ID, которое имеет каждый Account.ID для каждого пользователя. Результат моей мечты будет примерно таким:
Account.ID User.ID Percentage_of_Product.ID
1 X 100%
1 Y 66.66%
1 Z 50%
2 X 50%
2 Y 66.66%
2 Z 0%
3 X 33.33%
3 Y 33.33%
3 Z 0%
Проценты, представляющие собой количество Product.ID для каждой учетной записи по отношению к общему количеству Product.ID на пользователя.
Я пробовал много разные вещи, но ничего не работает, поэтому любая помощь будет принята с благодарностью.
Большое спасибо,
Dput:
df1 <- structure(list(Account.ID = c(1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3
), Product.ID = c("A", "B", "C", "D", "E", "F", "B", "D", "F",
"D", "E")), row.names = c(NA, -11L), class = c("tbl_df", "tbl",
"data.frame"))
df2 <- structure(list(User.ID = c("X", "X", "X", "X", "X", "X", "Y",
"Y", "Y", "Z", "Z"), Product.ID = c("A", "B", "C", "D", "E",
"F", "B", "D", "G", "K", "C")), row.names = c(NA, -11L), class = c("tbl_df",
"tbl", "data.frame"))