如何在R tidyverse中将Tibble转换为HTML表格?

3
我希望有一种方法可以将管道操作的结果转换为表格,以便可以在R Markdown中呈现为HTML表格。

示例数据:

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)

然后我使用管道构建频率表:

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

然而,如果我尝试将其转换为表格再转换为HTML,它会告诉我无法将Table强制转换为表格。数据框也是如此。

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


2
你没有描述你是如何尝试“将其转换为表格,然后再转换为HTML”的。也许 knitr::kable 可以为你工作? - lmo
使用DT包创建数据表。我经常使用它,非常有帮助。 - p0bs
1个回答

3

有几个包可以做到这一点。以下是其中一些:

knitr::kable(Table)

htmlTable::htmlTable(Table)

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

DT::datatable(Table)

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

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

kable 对于那个很管用,但我还有一些更复杂的表格,它们是使用“tables”包中的公式构建的。你知道是否有办法让 kable 也能处理它们吗? - Nick
如果你用 html() 包装 tables 对象,输出的结果就是一个 HTML 表格。 - yeedle
如果你想要使用 kable,你可以这样做:kable(as.matrix(complex_table))。但是你可能需要编辑生成的 rmarkdown。 - yeedle
1
@Nick 对于复杂的表格,你可以查看 kableExtra - Hao
太棒了,Hao!谢谢! - Nick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接