2017-07-21 6 views
0

J'ai deux paires de joueurs dans chaque groupe (a1 - a8) et je veux combiner les éléments d'un match avec le second matchup pour obtenir chaque combinaison pour chaque personne avec l'autre match.combiner un élément avec tous les autres éléments d'une colonne différente/R

#groups a1-a8 with two matchups 

$a1 
    [,1]  [,2]  
[1,] "Paul" "Stefan" 
[2,] "Markus" "Andre" 

$a2 
    [,1]  [,2] 
[1,] "Julian" "Lupo" 
[2,] "Jo"  "Peter" 
... 

donc je besoin de quelque chose comme ça ..

matchups for a1 

$Paul 
       [,1]  [,2]  
     [1,] "Paul" "Paul" 
     [2,] "Stefan" "Andre" 

$Markus 
      [,1]  [,2]  
     [1,] "Markus" "Markus" 
     [2,] "Stefan" "Andre" 

$Stefan 
      [,1]  [,2]  
     [1,] "Stefan" "Stefan" 
     [2,] "Paul" "Markus" 

$Andre 
      [,1]  [,2]  
     [1,] "Andre" "Andre" 
     [2,] "Paul" "Markus" 

la même chose devrait être possible pour chaque groupe (a2 -> a8)

Quelqu'un at-il une idée de comment résoudre ce problème, je n'ont pas été en mesure de résoudre cela jusqu'à présent. Thx beaucoup

+0

Cela ne résout pas complètement le problème, mais il pourrait être utile 'bibliothèque (data.table); dt <- data.table (v1 = c ("Paul", "Markus"), v2 = c ("Stefan", "Andre")); tmp1 <- CJ (joueur1 = dt $ v1, joueur2 = dt $ v2); tmp2 <- CJ (joueur1 = dt $ v2, joueur2 = dt $ v1); tmp <- rbind (tmp1, tmp2) ' – quant

Répondre

0

Le code suivant devrait faire l'affaire (il suffit de remplacer a1 dans tous les lieux si vous voulez d'autres matchups): split(expand.grid(a=a1[,1], b=a1[,2]), a1[,1])

+0

merci pour ça! utilisé votre façon de résoudre mon problème! Ajout d'un peu de code pour résoudre un problème de commande qui a surgi. Mais cela a fonctionné fondamentalement. table <- expand.grid (a = données [, 1], b = données [, 2]) tri <- facteur (données [, 1], niveaux = unique (données [, 1])) a < - split (table, tri) –