Tableau croisé avec R

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

Kévin Dubois
Messages : 97
Enregistré le : 25 Mar 2019, 12:07

Tableau croisé avec R

Messagepar Kévin Dubois » 01 Juin 2020, 17:31

Bonjour,

Je dispose d'une BDD qui compte le nombre de catégories d'objets dont dispose 4 villes. Ces catégories sont représentées par une colonne nommée "categorie_objet", et est composée des objet Ordinateur, Jouet, Vélos, Voiture. Je voudrais pouvoir créer un dataframe qui est un tableau croisé qui "Compte" ces catégories en fonction de plusieurs autres colonnes :
- Les services dont sont utilisés ces catégories d'objets
- La situation géographique de la ville où sont situées ces catégories (Grand pôle urbain, Périurbain, Moyen pôle, etc)
- La taille des communes dans lesquelles sont situées ces catégories (Grande, Moyenne, Petite)

Voici un exemple d'une base de données similaire à la mienne :

Code : Tout sélectionner

df = data.frame(gamme = sample(c("SERVICE_1", "SERVICE_2", "SERVICE_3", "SERVICE_4"), 1000, replace = TRUE), categorie_objet = sample(c("ORDINATEUR", "JOUET", "VELOS", "VOITURE"), 1000, replace = TRUE), situation_geographique = sample(c("GRAND POLE URBAIN", "PERIURBAIN", "MOYEN POLE", "PETIT POLE"), 1000, replace = TRUE), taille_commune = sample(c("GRANDE VILLE", "MOYENNE VILLE", "PETITE VILLE"), 1000, replace = TRUE))


L'objectif étant de créer un tableau de ce type là :
https://zupimages.net/viewer.php?id=20/23/wb1t.png

Est-il possible de faire ça sur R ?

Merci beaucoup.

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

Re: Tableau croisé avec R

Messagepar Logez Maxime » 02 Juin 2020, 09:21

Bonjour,

une possibilité avec la librairie htmlTable :

Code : Tout sélectionner

tab1 <- with(df, table(situation_geographique, gamme))
tab2 <- with(df, table(taille_commune, gamme))
tabs <- rbind(tab1, tab2)

htmlTable(tabs, header = colnames(tabs), rnames = rownames(tabs),
  n.rgroup = c(4,3), rgroup = c("Situation", "Taille"),
  caption = "Nombre de cat&eacutegories par service")
Cordialement,
Maxime

Kévin Dubois
Messages : 97
Enregistré le : 25 Mar 2019, 12:07

Re: Tableau croisé avec R

Messagepar Kévin Dubois » 02 Juin 2020, 09:54

Merci, c'est incroyable ce qu'on peut faire avec R :)

Existe t-il une fonction qui me permette d'exporter le tableau en format image, avec la library htmlTable ?

Merci beaucoup

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

Re: Tableau croisé avec R

Messagepar Logez Maxime » 02 Juin 2020, 12:27

Oui avec plusieurs autres librairies : magick, kableExtra, knitr et PhantomJS.

Code : Tout sélectionner

webshot::install_phantomjs()
install.packages(c("magick", "kableExtra"))
library(magick)
library(knitr)
library(kableExtra)

res <- htmlTable(tabs, header = colnames(tabs), rnames = rownames(tabs),
  n.rgroup = c(4,3), rgroup = c("Situation", "Taille"),
  caption = "Nombre de cat&eacutegories par service")
knit_print(res) %>% save_kable(file = "test.png")
Cordialement,
Maxime


Retourner vers « Questions en cours »

Qui est en ligne

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