[Débutante] Erreur dans les moyennes avec ddply?

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Maylis Fontaine
Messages : 7
Enregistré le : 05 Jan 2017, 15:41

[Débutante] Erreur dans les moyennes avec ddply?

Messagepar Maylis Fontaine » 01 Mai 2017, 20:29

Bonsoir à tous,

J'ai besoin, pour construire un graphique ggplot détaillé (avec moyennes par groupes et barres d'erreurs), de définir au préalable, à partir de mes données complètes "data", un jeu de données "data_msd" avec les moyennes et écart-types de ma variable continue "PR_moy_nbTours" (min=0, max=1) en fonction de deux variables qualitatives "Sequence" et "Class-age" (la première à deux modalités et la seconde à quatre modalités).

Quand je calcule les moyennes par groupes avec la fonction by, j'obtiens des résultats cohérents variant de 0.08 à 0.24. Toutefois, la fonction by ne me permet pas de créer un jeu de données. J'ai donc cherché une solution et découvert la fonction ddply, mais lorsque je l'utilise, j'obtiens des moyennes négatives comprises entre -8.23 et -6.66... Je ne comprends pas du tout...

Voici mon script avec la fonction by :

by(data$PR_moy_nbTours, list(data$Sequence, data$class_age), summary)

Et celui avec la fonction ddply :

data_msd<-ddply(data, .(data$Sequence, data$class_age), summarize, mean=mean(data$PR_moy-nbTours), sd=sd(data$PR_moy_nbTours))

Si quelqu'un voit où est mon erreur et peut me corriger, ce serait un immense soulagement.

D'avance merci!

Bonne soirée,
Maylis Fontaine

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Re: [Débutante] Erreur dans les moyennes avec ddply?

Messagepar Logez Maxime » 02 Mai 2017, 12:01

Bonjour,

je doute que ce soit ça mais dans ta formule avec ddply tu as un "-" au lieu d'un "_". Sinon du moment que tu as un argument data dans une fonction alors tu n'as pas besoin de répéter le nom de l'objet qui contient les données :

Code : Tout sélectionner

data_msd<-ddply(data, .(data$Sequence, data$class_age), summarize, mean=mean(data$PR_moy_nbTours), sd=sd(data$PR_moy_nbTours))
# ou :
data_msd<-ddply(data, .(Sequence, class_age), summarize, mean=mean(PR_moy_nbTours), sd=sd(PR_moy_nbTours))
Après je préfère la librairie dplyr pour ce genre de manipulations mais c'est juste une question de gout :

Code : Tout sélectionner

library(dplyr)
data %>% group_by(Sequence, class_age) %>% summarise(mean = mean(PR_moy_nbTours), sd = sd(PR_moy_nbTours))

Après il faut éviter aussi de donner à des objets des noms qui sont aussi des fonctions comme data qui est un nom de fonction.

Cordialement,
Maxime

Maylis Fontaine
Messages : 7
Enregistré le : 05 Jan 2017, 15:41

Re: [Débutante] Erreur dans les moyennes avec ddply?

Messagepar Maylis Fontaine » 02 Mai 2017, 12:28

Bonjour Maxime,

Avec la librairie dplyr et votre code, ça fonctionne impeccablement.
Un immense merci!
Je vais enfin pouvoir "batailler" avec ggplot...

Cordialement,
Maylis


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité