2017-06-12 191 views
2

我想要一种方法来将管道操作的结果转换为表格,以便它可以作为HTML表格呈现在R Markdown中。如何在R tidyverse中将Tibble转换为HTML表格?

的样本数据:

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

这给了我这里这个可爱的小汇总表:

# 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 

但是,如果

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) 

然后我使用管道建立一个频率表我尝试将其转换为表格然后转换为HTML,它告诉我它不能强制Table一张桌子。数据帧也是如此。

有没有人知道一种方式,因为我很喜欢自定义输出的外观?

+1

你不会描述你是如何试图“将其转换为表格然后转换为HTML的。”也许'knitr :: kable'会起作用吗? – lmo

+0

使用'DT'包创建[数据表](http://rstudio.github.io/DT)。我一直使用它,这真的很有帮助。 – p0bs

回答

1

有几个包。这里有一些:

knitr::kable(Table) 

htmlTable::htmlTable(Table) 

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

DT::datatable(Table) 

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

其中每个都有不同的自定义选项。

+0

kable为那个人工作过,我也有一些更复杂的表格,尽管这些表格是用使用“表格”包的公式构建的。你知道是否有办法让他们也能与他们一起工作? – Nick

+0

如果你在'html()'中封装'tables'对象,输出是一个html表格 – yeedle

+0

如果你想特别使用'kable',你可以做'kable(as.matrix(complex_table))'''。尽管如此,你可能还得编辑结果。 – yeedle