【发布时间】:2020-01-26 23:27:18
【问题描述】:
我想创建一个包含三列的所有唯一组合的 df,其中值的顺序无关紧要。在我的示例中,我想创建三个人可能拥有的所有意识形态群体组合的列表。
在我的示例中,“No opinion”、“Moderate”、“Conservative”与“Conservative”“No opinion”“Moderate”等同于“Moderate”、“No opinion”、“Conservative”等。所有这些组合都应该用一行来表示。
我看到过类似的threads 将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)
【问题讨论】:
-
我对预期输出持开放态度,另请参阅我的上次编辑
标签: r combinations tidyverse