Mise en forme de données

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

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Mise en forme de données

Messagepar Pierre-Yves Berrard » 10 Juil 2017, 20:25

Bonsoir,

Je cherche à mettre en forme des données sous une forme qui ressemble à la sortie de la fonction "ftable" (avec notamment une imbrication des variables en colonne).

Code : Tout sélectionner

ftable(Titanic, row.vars = "Class", col.vars = c("Sex", "Survived"))

#       Sex      Male     Female   
#       Survived   No Yes     No Yes
# Class                             
# 1st             118  62      4 141
# 2nd             154  25     13  93
# 3rd             422  88    106  90
# Crew            670 192      3  20


Toutefois, je ne peux pas appeler ftable car mes données sont déjà tabulées (et ce n'est pas un tableau de contingence).
Du coup, j'ai essayé d'adapter le dput de la fonction pour créer manuellement un objet de classe ftable :

Code : Tout sélectionner

structure(
  class = "ftable",
  c(118, 154, 422, 670, 62, 25, 88, 192,  4, 13, 106, 3, 141, 93, 90, 20),
  .Dim = c(4L, 4L),
  row.vars = structure(
    list(Class = c("1st", "2nd", "3rd", "Crew")),
    .Names = "Class"
  ),
  col.vars = structure(
    list(
      Sex = c("Male", "Female"),
      Survived = c("No", "Yes")
    ),
    .Names = c("Sex", "Survived")
  )
)

En remplaçant le vecteur de données, les libellés et modalités, ça fonctionne, mais ça me paraît un peu alambiqué.
Existerait-t-il plus simple ?

edit : mon objectif final est une sortie html, via markdown par exemple
PY

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: Mise en forme de données

Messagepar Pierre-Yves Berrard » 13 Juil 2017, 08:04

Apparemment, je ne peux pas exporter un objet "ftable" en html.
Le package xtable évoque cette fonctionnalité mais elle n'est pas implémentée pour l'instant (seulement export en LaTeX).

Je suis dans l'impasse...
PY

Serge Rapenne
Messages : 1426
Enregistré le : 20 Aoû 2007, 15:17
Contact :

Re: Mise en forme de données

Messagepar Serge Rapenne » 13 Juil 2017, 08:34

Bonjour,

Tu dois pouvoir contourner le pb en générant un fichier latex avec xtable puis en le transformant en html grâce aux utilitaires latex2html ou hlatex.

Ce n'est pas une solution forcement très propre mais ça devrait fonctionner.

Serge

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: Mise en forme de données

Messagepar Pierre-Yves Berrard » 13 Juil 2017, 09:06

Merci Serge,

J'étais justement en train d'explorer la piste hlatex, mais je ne peux pas installer facilement des logiciels à mon travail.

Sinon, je ne suis pas spécialement attaché à l'objet ftable. Peut-être il y a un autre moyen d'avoir une mise en forme similaire du tableau ?
PY

Florent Aubry
Messages : 324
Enregistré le : 25 Juin 2010, 10:21

Re: Mise en forme de données

Messagepar Florent Aubry » 13 Juil 2017, 09:10

Est-ce que transformer la ftable en un array comme suit :

Code : Tout sélectionner

#f.table est la ftable à traiter
res <- as.table( f.table)
class( res) <- "array"

puis

Code : Tout sélectionner

library( plyr)
res.2 <- as.data.frame.table( res)

résoudrait le problème ?

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: Mise en forme de données

Messagepar Pierre-Yves Berrard » 13 Juil 2017, 09:19

En fait c'est l'inverse de ce que je cherche à faire !

Je pars d'un data.frame sous la forme de base de données (format "long") et pour des raisons cosmétiques j'aimerais générer un tableau à double entrée (similaire à ce que donne le print de l'objet ftable).
PY


Retourner vers « Questions en cours »

Qui est en ligne

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