0
votes

Sous-ensemble à l'aide de rowsum ou de rangements

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. xxx


2 commentaires

Vous utilisez permutations fonction de quel paquet?


Le paquet est gtools


4 Réponses :


1
votes

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, ]


0 commentaires

0
votes

Voici une solution de base r: xxx


0 commentaires

0
votes

Voici une manière probablement plus rapide, évitant l'utilisation de permutations ... xxx


0 commentaires

0
votes

Pour vos informations, RAFT contient également des fonctions rapides avec des permutations.


3 commentaires

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 et peign_n