Combinaison entre 3 séries de données

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Isaac Perrier
Messages : 4
Enregistré le : 06 Déc 2021, 14:26

Combinaison entre 3 séries de données

Messagepar Isaac Perrier » 09 Déc 2021, 15:05

Bonjour,

J'ai un jeux de données qui se présente de la manière suivante :
Prélèvement 1 : placette 1.1, placette 2.1, placette 3.1, .... , placette 8.1
Prélèvement 2 : placette 1.2, placette 2.2, placette 3.2, .... , placette 8.2
Prélèvement 3 : placette 1.3, placette 2.3, placette 3.3, .... , placette 8.3

Je souhaiterais pouvoir créé un tableau avec toutes les combinaisons possibles à partir des différents prélèvement de manière à obtenir par exemple :
Combinaison 1 : placette 1.1, placette 2.2, placette 3.2, .... , placette 8.2
Combinaison x : placette 1.3, placette 2.2, placette 3.1, .... , placette 8.1

Aussi, une contrainte s'ajoute, en effet il faut respecter l'odre de prélèvement, ainsi il ne peux y avoir une combinaison de ce type :
Combinaison y : placette 1.1, placette 1.2, placette 1.3 .... placette 8.1
Combinaison z : placette 6.1, placette 6.2, placette 6.3 .... placette 7.1

Le but final sera de calculer une note pour chaque prélèvements avec l'ensemble des combinaisons de placettes qui auront été testée.

Il me semble qu'avec mes 3 séries de prélèvements réels, en réalisant une combinaison entre les 3 séries, ça fait une simulation de 8^3=512 prélèvements théoriques ?

Avez-vous des pistes de réflexions pour m'aider à réaliser cette combinaison dans R ?

Merci d'avance !

Mickael Canouil
Messages : 1315
Enregistré le : 04 Avr 2011, 08:53
Contact :

Re: Combinaison entre 3 séries de données

Messagepar Mickael Canouil » 09 Déc 2021, 16:30

Bonjour,

les fonctions `expand.grid` et `combn` permettent de faire ce genre de manipulations.

Si vous voulez une réponse plus détaillée :

Cordialement,
Mickaël
mickael.canouil.fr | rlille.fr

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: Combinaison entre 3 séries de données

Messagepar Pierre-Yves Berrard » 09 Déc 2021, 23:45

J'ai peut-être compris à l'envers, mais je dirais qu'il y a plutôt 3^8=6561 combinaisons ;

Une proposition :

Code : Tout sélectionner

placettes <- lapply(1:8, function(x) paste0(x, ".", 1:3))
comb_placettes <- expand.grid(placettes)

head(comb_placettes)
#>   Var1 Var2 Var3 Var4 Var5 Var6 Var7 Var8
#> 1  1.1  2.1  3.1  4.1  5.1  6.1  7.1  8.1
#> 2  1.2  2.1  3.1  4.1  5.1  6.1  7.1  8.1
#> 3  1.3  2.1  3.1  4.1  5.1  6.1  7.1  8.1
#> 4  1.1  2.2  3.1  4.1  5.1  6.1  7.1  8.1
#> 5  1.2  2.2  3.1  4.1  5.1  6.1  7.1  8.1
#> 6  1.3  2.2  3.1  4.1  5.1  6.1  7.1  8.1   
PY

Isaac Perrier
Messages : 4
Enregistré le : 06 Déc 2021, 14:26

Re: Combinaison entre 3 séries de données

Messagepar Isaac Perrier » 10 Juin 2022, 07:59

Merci beaucoup pour vos réponses, et effectivement c'est bien 6561 combinaisons pour 3 séries de 8 pools.

Deuxième problème, avec les données présentées de la manière suivante ci-dessous, quelles formules utiliser pour qu'un tableau soit créé pour chaque ligne (Soit pour la première ligne la somme de 1.1;2.1;3.1;4.1;5.1;6.1;7.1;8.1) du tableau directeur "comb_placettes" ?

De plus, j'aimerais bien me renseigner sur les méthodes de manipulation de données, mais je ne dois pas avoir les bons termes, car mes recherches ne sont pas fructueuses. Avez-vous des sites/guides à me conseiller ?

Code : Tout sélectionner

placettes <- lapply(1:8, function(x) paste0(x, ".", 1:2))
comb_placettes <- expand.grid(placettes)
head(comb_placettes)

Pool_1_1<-c("Sujet 154","Sujet 2","Sujet 14")
Effectif_1_1<-c(2,5,10)
"1.1"<-cbind.data.frame(Pool_1_1,Effectif_1_1)
Pool_2_1<-c("Sujet 157","Sujet 155","Sujet 154")
Effectif_2_1<-c(7,20,8)
"2.1"<-cbind.data.frame(Pool_2_1,Effectif_2_1)
Pool_3_1<-c("Sujet 16","Sujet 25","Sujet 24")
Effectif_3_1<-c(2,7,4)
"3.1"<-cbind.data.frame(Pool_3_1,Effectif_3_1)
Pool_4_1<-c("Sujet 41","Sujet 45","Sujet 66")
Effectif_4_1<-c(2,5,16)
"4.1"<-cbind.data.frame(Pool_4_1,Effectif_4_1)
Pool_5_1<-c("Sujet 78","Sujet 40","Sujet 96")
Effectif_5_1<-c(2,9,11)
"5.1"<-cbind.data.frame(Pool_5_1,Effectif_5_1)
Pool_6_1<-c("Sujet 71","Sujet 32","Sujet 39")
Effectif_6_1<-c(12,5,10)
"6.1"<-cbind.data.frame(Pool_6_1,Effectif_6_1)
Pool_7_1<-c("Sujet 64","Sujet 57","Sujet 52")
Effectif_7_1<-c(2,25,10)
"7.1"<-cbind.data.frame(Pool_7_1,Effectif_7_1)
Pool_8_1<-c("Sujet 44","Sujet 77","Sujet 88")
Effectif_8_1<-c(22,5,10)
"8.1"<-cbind.data.frame(Pool_8_1,Effectif_8_1)

Pool_1_2<-c("Sujet 2154","Sujet 22","Sujet 214")
Effectif_1_2<-c(2,5,10)
"1.2"<-cbind.data.frame(Pool_1_2,Effectif_1_2)
Pool_2_2<-c("Sujet 2157","Sujet 2155","Sujet 2154")
Effectif_2_2<-c(7,20,8)
"2.2"<-cbind.data.frame(Pool_2_2,Effectif_2_2)
Pool_3_2<-c("Sujet 216","Sujet 225","Sujet 224")
Effectif_3_2<-c(2,7,4)
"3.2"<-cbind.data.frame(Pool_3_2,Effectif_3_2)
Pool_4_2<-c("Sujet 241","Sujet 245","Sujet 266")
Effectif_4_2<-c(2,5,16)
"4.2"<-cbind.data.frame(Pool_4_2,Effectif_4_2)
Pool_5_2<-c("Sujet 278","Sujet 240","Sujet 296")
Effectif_5_2<-c(2,9,11)
"5.2"<-cbind.data.frame(Pool_5_2,Effectif_5_2)
Pool_6_2<-c("Sujet 271","Sujet 232","Sujet 239")
Effectif_6_2<-c(12,5,10)
"6.2"<-cbind.data.frame(Pool_6_2,Effectif_6_2)
Pool_7_2<-c("Sujet 264","Sujet 257","Sujet 252")
Effectif_7_2<-c(2,25,10)
"7.2"<-cbind.data.frame(Pool_7_2,Effectif_7_2)
Pool_8_2<-c("Sujet 244","Sujet 277","Sujet 288")
Effectif_8_2<-c(22,5,10)
"8.2"<-cbind.data.frame(Pool_8_2,Effectif_8_2)


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité