Ich habe ein Profil mit drei Eigenschaften zu schaffen, die eine Kombination dieser drei Listen:Sampling mit Einschränkung in R
Char1<-c("a1","a2","a3")
Char2<-c("b1","b2","b3")
Char3<-c("c1","c2")
Ein Profil würde wie etwas aussehen: [ „a1“, „b2“, „ c2 "] oder [" a3 "," b1 "," c1 "]. Ich habe insgesamt 18 Profile. Die Liste der Profile ist L:
L<-unique(do.call(c, apply(expand.grid(Char1,Char2,Char3), 1, combn, m=3, simplify=FALSE)))
> length(L)
[1] 18
> sample(L,3,replace=FALSE) # sample of 3 profiles from the list of 18
[[1]]
Var1 Var2 Var3
"a2" "b2" "c1"
[[2]]
Var1 Var2 Var3
"a1" "b1" "c1"
[[3]]
Var1 Var2 Var3
"a3" "b2" "c2"
I 2 Profile aus dem Pool von 18 Profilen herausnehmen möchten, dass so:
Es gibt keine Beschränkung auf das erste Profil, könnte es eines der 18 Profile sein.
Für das zweite Profil,
wenn Char1 des ersten Profils ist, „A1“, kann Char1 des zweiten only „a2“ und „a3“ sein
wenn Char2 des ersten Profils ist "b2", Char2 des zweiten kann nur "b1" oder "b3" sein
Wenn Char3 des ersten Profils "c1" ist, kann Char3 des zweiten Profils nur "c2 ".
Ich will das eine 100-mal tun. Wie schreibe ich eine Schleife, die 100 Paare zurückgibt, die diese Einschränkung erfüllen?
Vielen Dank für Ihre Hilfe,
Dank für Ihre Hilfe –