Fonction boxplot

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

Marie Guillot
Messages : 14
Enregistré le : 11 Avr 2007, 14:35

Fonction boxplot

Messagepar Marie Guillot » 15 Mai 2007, 15:38

Bonjour,
je cherche à créer un graphique boxplot à partir d'un fichier csv qui se présente sous la forme d'une matrice :
>x <- as.matrix(x)
> dim(x)

[1] 30400 36

Je cherche à réaliser un boxplot pour chacune des 36 colonnes de cette matrice mais ce message d'erreur s'affiche à l'écran :
> boxplot(x, names=(1:36))
Erreur dans boxplot.default(x, names = (1:36)) :
attribut 'names' [36] doit être de même longueur que le vecteur [1]

Je ne comprends pas, car j'ai effectivement 36 colonnes quand je demande un summary(x).
Ce problème ne se pose pas quand j'exporte un fichier .txt similaire (même nombre de colonnes et de lignes mais variable différente), est-ce que le problème vient du format .csv ?

Marie Guillot
Messages : 14
Enregistré le : 11 Avr 2007, 14:35

Messagepar Marie Guillot » 15 Mai 2007, 15:52

Je viens de créer un fichier txt avec ma variable x, et en effet, le boxplot marche, j'ai donc trouvé la solution, mais si quelqu'un connait la raison de ce pb, je veux bien qu'on m'explique...
Il semblerait que par défaut les colonnes des fichiers csv soit lues comme des vecteurs, ce qui n'est pas le cas avec les fichiers txt... Est-ce que je me trompe ?

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

Messagepar Logez Maxime » 15 Mai 2007, 16:04

Bonjour,


J'ai envie de dire qu'a priori il n'y a pas de raison que les deux fichiers donne des tableaux différents dans R. As-tu essayé d'importer les deux tableaux dans R l'un en txt et l'autre en csv pour voir si les deux tableaux sont identiques avec all.equal par exemple ?

Maxime

Marie Guillot
Messages : 14
Enregistré le : 11 Avr 2007, 14:35

Messagepar Marie Guillot » 16 Mai 2007, 07:12

Non, je n'avais pas pensé cela, en effet, ils sont identiques !
J'avoue que cette fonction boxplot reste un mystère ! Je ne doit pas bien contrôler les paramètres par défaut car j'obtiens soit un graphique où toutes les données sont confondues (càd une seule boite à moustache), soit un graphique décomposé comme je le souhaite en 36 boites à moustaches différentes...
Je me sers de l'argument names=... pour cela, peut-être que ce n'est pas le plus pratique ?
[/img]

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

Messagepar Logez Maxime » 16 Mai 2007, 08:06

Bonjour,

Il semblerait que la classe a un importance. Si tu fais le boxplot d'une matrice il te fait un seule boîte alors que si tu fais un boxplot sur un data.frame alors il te fait un boxplot pour chaque colonne. Tout provient de cette différence, enfin en grande partie. Pour plus de détail je t'invite à regarder comment fonctionne la fonction boxplot.default.

Maxime

Marie Guillot
Messages : 14
Enregistré le : 11 Avr 2007, 14:35

Messagepar Marie Guillot » 16 Mai 2007, 12:25

Merci beaucoup pour ces réponses si rapides !
Je met en pratique dans la foulée !


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité