Re: question sur R

From: Daniel Chessel (chessel@biomserv.univ-lyon1.fr)
Date: Mon Sep 13 2004 - 07:51:50 MEST

  • Next message: Marie Sémon: "analyses des correspondances internes"

    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