Я хочу создать df со всеми уникальными комбинациями из трех столбцов, где порядок значения не имеет значения. В моем примере я хочу создать список всех комбинаций идеологических групп из трех человек.
В моем примере «Нет мнения», «Умеренный», «Консервативный» - то же, что и « Консервативный "Нет мнения", "Умеренный", что совпадает с "Умеренным", "Нет мнения", "Консервативный" и т. Д. c. все эти комбинации должны быть представлены одной строкой.
Я видел похожие темы об использовании distinct
для домашних и выездных спортивных команд, но я не думаю, что это работает для этой проблемы.
library(tidyverse)
political_spectrum_values =
factor(c("Far left",
"Liberal",
"Moderate",
"Conservative",
"Far right",
"No opinion"),
ordered = T)
political_groups_of_3 <-
crossing(first_person = political_spectrum_values,
second_person = political_spectrum_values,
third_person = political_spectrum_values)
Я рассмотрел создание какой-то комбинированной переменной, добавив в эту строку, но я не уверен, как ее взять отсюда
unite(col = "group_composition", c(first_person, second_person, third_person), sep = "_")
РЕДАКТИРОВАТЬ: После более длительной работы с этой проблемой я изменил данные таким образом, чтобы это могло быть проще
crossing(first_person = political_spectrum_values,
second_person = political_spectrum_values,
third_person = political_spectrum_values) %>%
mutate(group_n = row_number()) %>%
pivot_longer(cols = c(first_person, second_person, third_person),
values_to = "ideology",
names_to = "group") %>%
select(-group)