如何将大频率表放入R markdown ioslides?

时间:2017-11-30 02:54:56

标签: r r-markdown ioslides

我试图将大型频率表放入我的幻灯片中。有许多价值观,甚至罕见的价值也很好。

我玩了不同的选项,但没有一个给我一个满意的解决方案。到目前为止,这是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不合适:

enter image description here

表2可以挤压,但字体很小,两边浪费很多空间。

我也调查了panderxtablestargazer但未能找到解决方案。

还有其他选择吗?

1 个答案:

答案 0 :(得分:3)

您可以将表格分布在多个列中以适应空间。在下面的例子中,我将框架分成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)
```

enter image description here

  

N.B。我接受将变换步骤分成多个列可以更优雅地完成并提供更多程序化解决方案,但是,我会将其留给其他人进行改进。