Je ne suis pas sûr de comment appeler ce problème. Disons que je compte les combinaisons distinctes de 2 colonnes, mais je veux une distinction à travers l'ordre des deux colonnes. Voilà ce que je veux dire :
df = data.frame(fruit1 = c("pomme", "orange", "orange", "banane", "kiwi"),
fruit2 = c("orange", "pomme", "banane", "orange", "pomme"),
stringsAsFactors = FALSE)
# Ce que je veux : le nombre total de combinaisons de fruits, peu importe
# lequel vient en premier et lequel en second.
# Par exemple, 2 pomme-orange, 2 banane-orange, 1 kiwi-pomme
# Ce qui ne fonctionne pas :
table(df$fruit1, df$fruit2)
# Ce qui fonctionne :
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())
J'ai trouvé un moyen de faire fonctionner cela, comme vous pouvez le voir, mais y a-t-il un nom pour ce problème général ? C'est un peu un problème de combinatoire mais de dénombrement, pas de génération de combinaisons. Et que se passerait-il si j'avais trois ou quatre colonnes de type similaire ? La méthode ci-dessus est peu généralisable. Les approches de la Tidyverse sont les bienvenues !