8
votes

Combinatoriques simples en r

Je souhaite partager une fonction R pour trouver toutes les combinaisons indignes uniques possibles entre éléments d'un vecteur unique: xxx

et demander s'il y a un moyen plus simple de faire cela? (J'ai besoin du résultat pour être dans une matrice de 2 colonnes).


0 commentaires

4 Réponses :


10
votes

Eh bien, il y a une fonction intégrée COMMUN code> Fonction:

> library(rbenchmark)
> v <- 1:20
> benchmark(combi(v),t(combn(v,2)))
            test replications elapsed relative user.self sys.self
1       combi(v)          100   0.005      1.0     0.004    0.000   
2 t(combn(v, 2))          100   0.044      8.8     0.040    0.004   


1 commentaires

Avec un problème, cette petite génération de la vérification des erreurs et de la configuration pour le cas général de 3 lignes de sortie de 3 ou supérieures de sortie et d'applications amusantes éventuelles que COMMUNALE WADES est probablement la différence.



4
votes

Il y a une fonction de base r COMMUN code> dans l'emballage utils code> qui, autant que je puisse dire, donne des résultats identiques (si transposés). La différence est que combn code> est plus flexible dans le sens où il calculera également des combinaisons de longueur autres que 2. xxx pré>


à l'aide de la base R COMBN CODE>: P>

combn(1:5, 3)
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]    1    1    1    1    1    1    2    2    2     3
[2,]    2    2    2    3    3    4    3    3    4     4
[3,]    3    4    5    4    5    5    4    5    5     5


1 commentaires

Merci beaucoup parce que j'étais perplexe par cette fonction de combn.



2
votes

Package Combinat . Grand tas d'outils pour la combinaison, la permutation et tout cela.


0 commentaires

1
votes

Merci d'avoir posté. Quelques ajustements pour la performance.

a. J'ai utilisé rep.int à la place ou à un représentant, lors de la création des indices pour la première.

b. J'ai utilisé xxx

au lieu de xxx

c. J'ai utilisé xxx

au lieu de xxx


0 commentaires