Je souhaite partager une fonction R pour trouver toutes les combinaisons indignes uniques possibles entre éléments d'un vecteur unique: 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). P> P>
4 Réponses :
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
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 CODE> WADES est probablement la différence.
Il y a une fonction de base r à l'aide de la 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.
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
Merci beaucoup parce que j'étais perplexe par cette fonction de combn.
Package Combinat code>. Grand tas d'outils pour la combinaison, la permutation et tout cela. P>
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. P>
b. J'ai utilisé p> au lieu de p> c. J'ai utilisé p> au lieu de p>