At 10:07 07/09/2004 +0200, natalia norden wrote:
>Bonjour,
>Je suis étudiante en thèse et je suis en train d'apprendre à utiliser R pour faire l'analyse de mes données.
>Je veux faire un tirage aléatoire, tel que le résultat de l'expérience soit une variable aléatoire à plusieurs composantes (placer de 1 à 200 objets dans 160 cases) et répéter cette expérience 1000 fois. Dans le tdr32, Tests du Khi2, que j'ai téléchargé, il y a quelque chose de très semblable tout au début avec une variable aléatoire de 4 composantes, une par couleur. D'après le td, pour faire une simulation 10 fois on peut écrire t(apply(as.data.frame(1:10),1,fun)
>or si je mets "sample" à la place de "fun" il ne fait pas le lien avec l'échantillonnage aléatoire de x boules dans une urne.
>Comment je peux faire?
Il suffit de comprendre la logique des fonctions apply.
On peut faire les expériences suivantes
lapply(1:5,function(x) "bonjour")
A chaque élément de la liste 1:5 on a appliqué la fonction la fonction qui renvoie "bonjour".
Le résultat est une liste.
unlist(lapply(1:5,function(x) "bonjour"))
Même chose mais le résultat est devenu un vecteur. Il faut séparer les problèmes de la fonction et ceux du résultat. Le plus simple est d'essayer.
lapply(1:5,sample)
Plus difficile. En fait sample a des paramètres. lapply applique la fonction sample à 1, 2, 3, 4, 5.
C'est le premier paramètre qui est utilisé.
lapply(1:5,sample,rep=T)
Le premier paramètre est utilisé mais on a le droit de préciser la valeur des autres :
Dans la doc lapply(X, FUN, ...) ... signifie que la place est prévue pour passer des paramètres à FUN
On peut mettre deux paramètres :
lapply(1:5,sample,size=5,rep=T)
lapply(1:5,function(x) sample(x,size=5,rep=T))
etc ... il suffit de comprendre la logique du passage des paramètres dans lapply.
Il y a tellement de possibilités que c'est difficile de faire le travail à votre place.
Essayez !
Daniel Chessel - chessel@biomserv.univ-lyon1.fr
This archive was generated by hypermail 2b30 : Mon Sep 13 2004 - 07:52:09 MEST