Re: Programme conditionné en boucl

From: Stéphane Dra (dray@biomserv.univ-lyon1.fr)
Date: Wed Feb 01 2006 - 10:46:51 MET


Bonjour,
La question est assez vague.
Le plus simple, c'est de faire un test et si on voit que la conditions
n'est pas remplie, on refait une permutation:

cond=FALSE
while(!cond){
m=rep(c(1,0),c(10,15))
m=matrix(sample(m,25),nc=5)
print(m)
row.sum=apply(m,1,sum)
col.sum=apply(m,2,sum)
cond=!(any(row.sum==0)|any(col.sum==0))
}

On peut egalement utilisé rbinom, cela depend de l'objectif.
Si on a une matrice X et on veut permuter les valeurs pour obtenir Xper
avec contraintes de conservation des totales lignes et colonnes, il
existe plusieurs algorithmes (null model, voir notamment les travaux de
Gotelli).

Cordialement.

Olivier Beauchard wrote:

>Bonjour à tous,
>
>Je cherche à générer des tableaux aléatoires en présence/abscence.
>
>
>
>>m=rep(c(1,0),c(10,15))
>>m=matrix(sample(m,25),nc=5)
>>m
>>
>>
> [,1] [,2] [,3] [,4] [,5]
>[1,] 1 0 1 0 1
>[2,] 0 0 0 1 0
>[3,] 1 1 0 0 0
>[4,] 0 1 1 1 0
>[5,] 0 0 0 0 1
>
>Mais à condition que les sommes en ligne ET en colonne soient non nulles, du type:
>
>0%in%apply(m,1,sum)==F & 0%in%apply(m,2,sum)==F
>
>Comment imposer cette condition dans le programme?
>
>Merci d'avance
>
>Accédez au courrier électronique de La Poste : www.laposte.net ;
>3615 LAPOSTENET (0,34 €/mn) ; tél : 08 92 68 13 50 (0,34€/mn)
>
>
>
>
>
>
>

-- 
Stéphane DRAY (dray@biomserv.univ-lyon1.fr )
Laboratoire BBE-CNRS-UMR-5558, Univ. C. Bernard - Lyon I
43, Bd du 11 Novembre 1918, 69622 Villeurbanne Cedex, France
Tel: 33 4 72 43 27 57       Fax: 33 4 72 43 13 88
http://www.steph280.freesurf.fr/ 



This archive was generated by hypermail 2b30 : Tue Feb 14 2006 - 15:01:53 MET