Je suis très nouveau à R. Je voudrais créer une liste de toutes les combinaisons de concentration possibles d'une recette composée de 4 matériaux. La dernière ligne est l'endroit où je rencontre des problèmes.
4 Réponses :
Que diriez-vous de créer un vecteur sous-télétendant tel que ceci:
#create a sequence of numbers from 0.01 to 0.97 by 0.01 #(all possible concentration combinations for a recipe of 4 unique materials) concs<-seq(0.01,0.97,0.01) #create all possible permutations of these numbers with repeats combos2<-gtools::permutations(length(concs),4,concs,TRUE,TRUE) #subset the list of possible concentrations so that all that is left are the rows of data #where all four values (4 columns) in a row (the four material concentrations) sum to 1 # Subset vector to only retain the rows where the sum is equal to 1 subset_vctr <- which(Rfast::rowsums(combos2[, 1:4]) == 1) combos2<-combos2[subset_vctr, ]
Voici une solution de base r:
Voici une manière probablement plus rapide, évitant l'utilisation de permutations code> ...
Pour vos informations, RAFT contient également des fonctions rapides avec des permutations. p>
Ce n'est pas vraiment une réponse à la question. Une meilleure réponse serait de, par exemple, d'améliorer l'une des réponses existantes en montrant comment il peut être fait plus rapidement et / ou mieux, par exemple. En utilisant le package rfast pour également faire les permutations de ce qui est après toute une matrice relativement grande.
Quelles fonctions?
Ces fonctions sont permutation code> et
peign_n code>
Vous utilisez
permutations code> fonction de quel paquet?
Le paquet est gtools