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 :

Sans boucle c'est possible ?


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Master Data Manager
    Inscrit en
    Février 2017
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Master Data Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2017
    Messages : 113
    Par défaut Sans boucle c'est possible ?
    Bonjour.

    Voici un petit bout de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    v <- c()
    for( i in runif(n = 10, min = -7, max = 7) ){
        v <- c( v, rnorm(n = 30, mean = i, sd = 3))
    }
     
    id <- rep(seq(from = 1, to = 10, by = 1), each = 30)
     
    df <- data.frame(
          cat  = as.factor(id)
        , data = v
    )
     
    library(ggplot2)
    ggplot(df) +
        aes(x = cat, y = data) +
        geom_boxplot()
    La question est simple:

    Peut-on obtenir la même chose sans boucle for ?

    La boucle me sert à créer un vecteur de 10 tirages de 30 valeurs d'une distribution normale, avec 10 moyennes aléatoires entre deux bornes.

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 491
    Par défaut
    bonjour ,
    avec le tidyverse (en particulier purrr)
    tu peux creer ton dataframe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    library(tidyverse)
    df <- map2_df(rep(seq(from = 1, to = 10, by = 1)),runif(n = 10, min = -7, max = 7),
                 ~tibble(cat =.x,data=rnorm(n= 30,mean = .y,sd = 3)))

  3. #3
    Membre chevronné
    Inscrit en
    Février 2011
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 276
    Par défaut
    Bonjour,

    tu as deux possibilités pour le faire sans boucle, soit tu utilises le recyclage sur le vecteur de moyenne, soit tu répètes chaque moyenne 30 fois chacune.
    Les deux te donneront le même résultat mais par contre pas dans le même ordre. Dans le premier cas les données seront dans l'ordre g1, g2, g3, ..., g10, g1, g2, ... alors que dans le deuxième cas les données d'un même groupe seront à la suite puis une fois les 30 valeurs obtenues tu passeras au groupe suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    set.seed(100)
    v <- c()
    for( i in runif(n = 10, min = -7, max = 7) ){
        v <- c( v, rnorm(n = 30, mean = i, sd = 3))
    }
     
    # recyclage
    set.seed(100)
    mns <- runif(10, -7, 7)
    v1 <- rnorm(30*length(mns), mns, 3)
    id1 <- rep(1:10, 30)
     
    # repetition des moyennes
    set.seed(100)
    mns <- runif(10, -7, 7)
    v2 <- rnorm(30*length(mns), rep(mns, each = 30), 3)
    id2 <- rep(1:10, each = 30)
     
    plot(v, v2)
    cdlt

  4. #4
    Membre éprouvé
    Homme Profil pro
    Master Data Manager
    Inscrit en
    Février 2017
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Master Data Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2017
    Messages : 113
    Par défaut
    Bonjour.

    Merci pour les solutions !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.x] appli symfony2 sans symfony c'est possible ?
    Par cmoicmoi dans le forum Symfony
    Réponses: 7
    Dernier message: 10/02/2015, 15h31
  2. Appli JAVA sans JRE : C'est possible ?
    Par bigsister dans le forum Servlets/JSP
    Réponses: 20
    Dernier message: 12/01/2009, 18h55
  3. Un Office sans Office c'est possible !
    Par loufab dans le forum Autres Logiciels
    Réponses: 0
    Dernier message: 30/12/2007, 11h32
  4. EURL sans rémunération : C'est possible ?
    Par hubidev dans le forum Société
    Réponses: 9
    Dernier message: 18/03/2007, 14h01
  5. Réponses: 1
    Dernier message: 26/03/2006, 17h02

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