Я не уверен, что эта проблема даже называется.Допустим, я считаю разные комбинации из двух столбцов, но я хочу, чтобы они различались по порядку двух столбцов.Вот что я имею в виду:
df = data.frame(fruit1 = c("apple", "orange", "orange", "banana", "kiwi"),
fruit2 = c("orange", "apple", "banana", "orange", "apple"),
stringsAsFactors = FALSE)
# What I want: total number of fruit combinations, regardless of
# which fruit comes first and which second.
# Eg 2 apple-orange, 2 banana-orange, 1 kiwi-apple
# What I know *doesn't* work:
table(df$fruit1, df$fruit2)
# What *does* work:
library(dplyr)
df %>% group_by(fruit1, fruit2) %>%
transmute(fruitA = sort(c(fruit1, fruit2))[1],
fruitB = sort(c(fruit1, fruit2))[2]) %>%
group_by(fruitA, fruitB) %>%
summarise(combinations = n())
У меня есть способ сделать эту работу, как вы можете видеть, но есть ли название для этой общей проблемы?Это своего рода проблема комбинаторики, но , считая , а не , генерирующая комбинаций.А что если бы у меня было три или четыре столбца аналогичного типа?Вышеуказанный метод плохо обобщаем.Tidyverse подходит только приветствовать!