Рассмотрим следующий кадр данных:
> A
primero segundo Pref comentario
1 A B B bavodkzn
2 B A B tgczxobh
3 B C B wavkflpr
4 C A C ujplgzkh
5 A C C hfsnrdaq
6 A B A asdf
Каждая строка содержит следующее: primero
и segundo
, которые являются продуктами, протестированными отдельным лицом;Pref
, который является предпочтительным вариантом для указанного лица, и comentario
, в котором содержится комментарий, сделанный этим человеком.
Для моего анализа я забочусь только о предпочтительном продукте и двух протестированных ими продуктах ( не заказ).Таким образом, ожидаемый результат будет:
> Group_1
primero segundo Pref comentario
1 A B B bavodkzn
2 B A B tgczxobh
> Group 2
primero segundo Pref comentario
3 B C B wavkflpr
> Group 3
primero segundo Pref comentario
4 C A C ujplgzkh
5 A C C hfsnrdaq
> Group 4
primero segundo Pref comentario
6 A B A asdf
Это можно сделать с помощью циклов, но я бы предположил, что существуют более простые решения, возможно, через dplyr
.
dput
изданные:
structure(list(primero = c("A", "B", "B", "C", "A", "A"), segundo = c("B",
"A", "C", "A", "C", "B"), Pref = c("B", "B", "B", "C", "C", "A"
), comentario = c("bavodkzn", "tgczxobh", "wavkflpr", "ujplgzkh",
"hfsnrdaq", "asdf")), row.names = c(NA, -6L), class = "data.frame")
РЕДАКТИРОВАТЬ
Глядя на ответ, я вижу, что я недостаточно ясно дал понять, каков ожидаемый результат:
- Данные должны быть разбиты по
primero
, segundo
и Pref
. - В данной группе i должны быть лица, которые выбралитот же продукт, что и предпочтительный (например,
Pref==B
) из того же выбора (primero
и segundo
), независимо от порядка двух последних.
Таким образом,
primero segundo Pref comentario
1 A B B bavodkzn
2 B A B tgczxobh
Должны ли все принадлежать к одной группе, в то время как
primero segundo Pref comentario
6 A B A asdf
Не принадлежат к одной группе, поскольку их предпочтения различны.Я обновил набор данных и ожидаемый результат.