IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Répartition aléatoire R


Sujet :

R

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 13
    Points : 13
    Points
    13
    Par défaut Répartition aléatoire R
    Salut tout le monde,

    La fonction sample(2,10,T) permet de répartir aléatoirement les 2 éléments 10fois mais si on voulais répartir les éléments m en taille égale genre autant de 1 que de 2 ?


    merci.

  2. #2
    Membre éprouvé

    Homme Profil pro
    Cyber Security & AI
    Inscrit en
    Février 2009
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Cyber Security & AI

    Informations forums :
    Inscription : Février 2009
    Messages : 506
    Points : 1 155
    Points
    1 155
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    Je ne suis pas sûr de bien comprendre ta question :

    Code R : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    m <- rep(c(1,2), 100)
    sample(m,20)

    Dans mon exemple tu répètes 100 fois la suite 1, 2.
    Ensuite parmi cette suite tu prends au hasard 20 éléments.

    Au plaisir de te lire.

  3. #3
    Modératrice

    Femme Profil pro
    Statisticienne, Fondatrice de la société DACTA
    Inscrit en
    Juin 2010
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Statisticienne, Fondatrice de la société DACTA

    Informations forums :
    Inscription : Juin 2010
    Messages : 893
    Points : 2 673
    Points
    2 673
    Par défaut
    Bonjour,

    La fonction sample possède un argument "prob" qui permet de spécifier un vecteur de poids de probabilités associés à chacune des valeurs parmi lesquelles le choix aléatoire va se faire (somme du vecteur = 1).


    Cordialement,


    A.D.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 13
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    L'idée est de faire une répartition aléatoire uniforme de N étudiants en n groupes mais à taille égale.

  5. #5
    Membre éprouvé

    Homme Profil pro
    Cyber Security & AI
    Inscrit en
    Février 2009
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Cyber Security & AI

    Informations forums :
    Inscription : Février 2009
    Messages : 506
    Points : 1 155
    Points
    1 155
    Billets dans le blog
    2
    Par défaut
    Code R : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    m <- data.frame(1:100)
    g1 <- m$X1.100[c(sample(m$X1.100, 5))]
    m$X1.100[-c(sample(m$X1.100, 5))]
    g2 <- m$X1.100[c(sample(m$X1.100, 5))]

    1) Génération d'une data-frame
    2) Création du premier groupe
    3) Reste des étudiants
    4) Création du second groupe.

    Au plaisir de te lire.

  6. #6
    Membre éclairé
    Homme Profil pro
    Chercheur
    Inscrit en
    Décembre 2015
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2015
    Messages : 327
    Points : 793
    Points
    793
    Par défaut
    Si le problème est d'avoir autant d'éléments dans chaque niveau d'un facteur et supposons que la colonne X contienne ce facteur de classement, alors on peut utiliser une fonction de type lapply :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    lev <- as.character( levels( data$X))
    res <- lapply( lev, function( niv) sample( which( data$X == niv), size=nb))
    qui donne par niveau les indices retenus.
    Si par contre, c'est pour de la validation croisée, les indices doivent être uniquse et on peut améliorer la solution de dev_gg comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    idx <- sample( nrow( df))
    puis prendre les nb premiers pour le premier groupe, les nb suivant pour le second, etc. Cependant le dernier groupe ne sera de même taille que les autres que si nb est un diviseur de nrow( df)

Discussions similaires

  1. [Débutant] Répartition aléatoire de cylindres ou courbes dans un cube
    Par sfabricel dans le forum MATLAB
    Réponses: 10
    Dernier message: 28/07/2016, 13h34
  2. Répartition aléatoire de données
    Par lolo1960 dans le forum Access
    Réponses: 11
    Dernier message: 20/02/2014, 12h31
  3. [XL-2003] répartition aléatoire taches des absents
    Par Maxgad dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/02/2012, 05h39
  4. Réponses: 3
    Dernier message: 12/02/2011, 17h33
  5. Répartition aléatoire dans un tableau
    Par pyopyo dans le forum Langage
    Réponses: 2
    Dernier message: 23/04/2008, 14h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo