2017-06-12 2 views
2

Je veux un moyen de convertir les résultats d'une manipulation de pipeline dans une table afin qu'il puisse être rendu sous forme de tableau HTML en R Markdown.Comment convertir un Tibble en HTML Table dans R tidyverse?

données Exemple:

Category <- sample(1:6, 394400) 
Category <- sample(1:6, 394400, replace=TRUE) 
Category <- factor(Category, 
        levels = c(1,2,3,4,5,6), 
        labels = c("First", 
           "Second", 
           "Third", 
           "Fourth", 
           "Fifth", 
           "Sixth")) 
data <- data.frame(Category) 

Puis-je construire une table de fréquence en utilisant le pipeline:

Table <- data %>% 
      group_by(Category) %>% 
      summarise(N= n(), Percent = n()/NROW(data)*100) %>% 
      mutate(C.Percent = cumsum(Percent)) 

Ce qui me donne cette belle petite table résumé ici:

# A tibble: 6 × 4 
    Category  N Percent C.Percent 
    <fctr> <int> <dbl>  <dbl> 
1 First 65853 16.69701 16.69701 
2 Second 66208 16.78702 33.48403 
3 Third 65730 16.66582 50.14985 
4 Fourth 65480 16.60243 66.75228 
5 Fifth 65674 16.65162 83.40390 
6 Sixth 65455 16.59610 100.00000 

Toutefois, si J'essaye de convertir cela en une table pour ensuite le convertir en HTML, ça me dit qu'il ne peut pas contraindre Table à une table. C'est la même chose avec les trames de données.

Est-ce que quelqu'un connaît un moyen, car j'aimerais personnaliser l'apparence de la sortie?

+1

Vous ne décrivez pas comment vous avez essayé de le convertir en une table pour ensuite le convertir en HTML. Peut-être 'knitr :: kable' de travailler pour vous? – lmo

+0

Utilisez le package 'DT' pour créer une [table de données] (http://rstudio.github.io/DT). Je l'utilise tout le temps et c'est vraiment utile. – p0bs

Répondre

1

Il existe plusieurs packages pour cela. En voici quelques unes:

knitr::kable(Table) 

htmlTable::htmlTable(Table) 

ztable::ztable(as.data.frame(Table)) 

DT::datatable(Table) 

stargazer::stargazer(Table, type = "html") 

Chacune d'entre elles possède différentes options de personnalisation.

+0

kable a travaillé un régal pour celui-là, j'ai aussi quelques tables plus complexes qui sont construites avec des formules utilisant le paquet "tables". Savez-vous s'il existe un moyen de faire fonctionner Kable avec eux aussi? – Nick

+0

Si vous enveloppez cet objet 'tables' dans' html() 'la sortie est une table html – yeedle

+0

Si vous voulez utiliser spécifiquement' kable', vous pouvez faire quelque chose comme 'kable (as.matrix (table_complexe))'. Cependant, vous devrez probablement modifier le rmarkdown résultant. – yeedle