2

我正在尝试将大型频率表放入我的幻灯片中。有很多价值,即使是稀有的也很高兴展示。

我玩过不同的选择,但没有一个能给我一个令人满意的解决方案。这是Rmd

---
title: "Untitled"
author: "author"
date: "date"
output: ioslides_presentation
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
df <- as.data.frame(table(rownames((USArrests))))
```

## table 1

```{r t1, echo = TRUE}
table(rownames((USArrests)))
```

## table 2

```{r t2}
library(knitr)
library(kableExtra)
kable(df, "html") %>%
  kable_styling(bootstrap_options = "striped", font_size = 10)
```

表 1 不适合:

在此处输入图像描述

表 2 可以被挤压,但字体很小,并且侧面有很多浪费的空间。

我也调查了panderxtable但也stargazer未能从他们那里找到解决方案。

还有其他选择吗?

4

1 回答 1

4

您可以将表格分布在多个列中以适应空间。在下面的示例中,我将框架分成 3 对长度不均匀的列。

---
output: ioslides_presentation
---

```{r setup, include=FALSE}
library(dplyr)
library(magrittr)
library(knitr)
library(kableExtra)
```

## table 1

```{r, echo=TRUE, eval=FALSE}
USArrests %>% rownames %>% table
```

```{r, echo=FALSE}
df <- USArrests %>%
  rownames %>%
  table %>%
  as_tibble

df %$%
  tibble(
    name1 = `.`[1:17],
    n1 = n[1:17],
    name2 = `.`[18:34],
    n2 = n[18:34],
    name3 = c(`.`[35:50], ""),
    n3 = c(n[35:50], "")
  ) %>%
  kable("html", align = c("l", "c"), col.names = rep(c("Name", "Frequency"), 3)) %>%
  kable_styling(bootstrap_options = c("striped", "condensed"), font_size = 18)
```

在此处输入图像描述

注意,我接受将转换步骤转换为多列可以更优雅地完成并提供更多程序化的解决方案,但是,我将把它留给其他人来完善。

于 2017-11-30T03:48:43.840 回答