我尝试用 R 和 kableExtra 制作一个表格,它看起来可以在 审阅但它变成了pdf中的乳胶代码,请查看屏幕 针织 PDF 的帽子和我的代码。它应该提供一张漂亮的桌子 使用 kableExtra 函数。请参阅可重现的代码 以下。我有另一个代码也遇到同样的情况 问题,但我真的不确定发生了什么。
popular_names_eight_years <- babynames %>%
group_by(eight_years = year %/% 8, sex) %>%
mutate(period = paste0(min(year), '-', max(year)), N = sum(n)) %>%
group_by(period, sex, name) %>%
summarize(Total = sum(n), Percent = sum(n) / N[1], .groups = 'drop') %>%
arrange(period, desc(Total)) %>%
group_by(period, sex) %>%
top_n(1, Total) %>%
ungroup()
caption <- 'Most popular names by every eight years and sex, with totals and percent by sex'
final_table <- popular_names_eight_years %>%
pivot_wider(names_from = sex, values_from = c(name, Total, Percent), names_sep = "_")
colnames = c('Period', rep(c('Name', 'Total', 'Percent'), times = 2))
tbl <- final_table %>%
select(period, contains('_F'), contains('_M')) %>%
kable(col.names = colnames, booktabs = TRUE, caption = caption, format = "latex") %>%
kableExtra::kable_styling(position = 'center', full_width = FALSE) %>%
kableExtra::add_header_above(c(" " = 1, "Female" = 3, "Male" = 3))
print(tbl)
不要打电话给
print()
。 tbl
单独就足够了(knitr 将调用正确的打印方法)。您甚至不需要创建对象 tbl
(除非您稍后确实需要对其执行任何操作),只需编写 final_table %>% ...
而无需赋值。