Comment insérer des données dans un message

Toutes les annonces relatives au Groupe des Utilisateurs du logiciel R

Modérateur : Groupe des modérateurs

François Bonnot
Messages : 429
Enregistré le : 10 Nov 2004, 15:19
Contact :

Comment insérer des données dans un message

Messagepar François Bonnot » 29 Oct 2010, 07:50

Bonjour,

De nombreux messages échangés sur le forum nécessitent l'insertion d'un jeu de données permettant d'illustrer la question soumise.
Afin d'alléger le contenu du message et de faciliter l'utilisation du jeu de données (et donc de maximiser les chances d'obtenir une réponse), il est vivement recommandé de respecter les principes suivants:

1) Réduire le jeu de données au minimum nécessaire à la résolution du problème. Dans la plupart des cas, un tableau d'une dizaine de lignes et quelques colonnes suffit à illustrer un problème de syntaxe. S'il s'agit de données réelles nécessitant un avis sur la pertinence d'une analyse, on peut dépasser cette limite, mais l'insertion de données dépassant un écran devrait être exceptionnelle (ne pas décourager le lecteur et penser aussi à notre espace disque). Au delà de cette limite, utiliser un lien externe.

2) Utiliser la fonction dput() pour insérer des données. Le lecteur dispose ainsi de l'image exacte des données, y compris leur classe et mode de stockage ce qui est souvent important.

Exemple. Soit le data.frame suivant:

Code : Tout sélectionner

> (df <- data.frame(x=letters[1:4],y=1:4,z=log(1:4)))
  x y         z
1 a 1 0.0000000
2 b 2 0.6931472
3 c 3 1.0986123
4 d 4 1.3862944

Exécuter dput():

Code : Tout sélectionner

> dput(df)
structure(list(x = structure(1:4, .Label = c("a", "b", "c", "d"
), class = "factor"), y = 1:4, z = c(0, 0.693147180559945, 1.09861228866811,
1.38629436111989)), .Names = c("x", "y", "z"), row.names = c(NA,
-4L), class = "data.frame")

Editer ensuite cette sortie en ajoutant en tête le nom de l'objet et l'opérateur d'affectation, puis l'insérer dans le corps du message avec les balises "code" afin que le lecteur puisse charger directement les données:

Code : Tout sélectionner

df <- structure(list(x = structure(1:4, .Label = c("a", "b", "c", "d"
), class = "factor"), y = 1:4, z = c(0, 0.693147180559945, 1.09861228866811,
1.38629436111989)), .Names = c("x", "y", "z"), row.names = c(NA,
-4L), class = "data.frame")

Afin de faciliter la lecture du message, on peut présenter le début du tableau en format lisible (voire l'insérer en entier s'il est très court) avant d'insérer la sortie de dput(). Exemple:

"Je dispose d'un data.frame de 10 lignes structuré ainsi:"

Code : Tout sélectionner

   x  y         z
1  a  1 0.0000000
2  b  2 0.6931472
...
10 j 10 2.3025851

"et dont le contenu est:"

Code : Tout sélectionner

df <- structure(list(x = structure(1:10, .Label = c("a", "b", "c",
"d", "e", "f", "g", "h", "i", "j"), class = "factor"), y = 1:10,
    z = c(0, 0.693147180559945, 1.09861228866811, 1.38629436111989,
    1.6094379124341, 1.79175946922805, 1.94591014905531, 2.07944154167984,
    2.19722457733622, 2.30258509299405)), .Names = c("x", "y",
"z"), row.names = c(NA, -10L), class = "data.frame")

François

Retourner vers « Annonces »

Qui est en ligne

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