第 2 章 table

2.1 gt表

Code
library(tidyverse)
library(gt)
library(gtExtras)

学习gt表网站

2.1.1 表格1

Code
mtcars %>% 
  head() %>% 
  gt() %>% 
  gt_theme_538()
mpg cyl disp hp drat wt qsec vs am gear carb
21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
18.1 6 225 105 2.76 3.460 20.22 1 0 3 1

2.1.2 表格2

Code
mtcars %>% 
  head() %>% 
  gt() %>% 
  gt_theme_espn() %>% # gt_theme_nytimes() %>% 
  tab_header(title = "ESPN 风格表格")
ESPN 风格表格
mpg cyl disp hp drat wt qsec vs am gear carb
21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
18.1 6 225 105 2.76 3.460 20.22 1 0 3 1

2.1.3 颜色表格

高亮行 高亮 mpg, wt 列的 1-5 行。 gt_highlight_rows

Code
mtcars %>% 
  head() %>% 
  gt() %>% 
  gt_highlight_cols(c(cyl, vs:carb),
                    fill = "lightblue", 
                    alpha = .5)%>%
  gt_highlight_rows(1:5, columns = c(mpg, wt)) %>% 
  gt_color_rows(hp,palette = "ggsci::blue_material")
mpg cyl disp hp drat wt qsec vs am gear carb
21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
Code
  #palette = c("darkred", "orange")

2.1.4 增加图像

Code
mtcars %>%
  select(cyl:wt, mpg) %>% 
  head() %>%
  gt() %>%
  gt_plt_bar(column = mpg, keep_column = TRUE, width = 35)
cyl disp hp drat wt mpg mpg
6 160 110 3.90 2.620 21.0
6 160 110 3.90 2.875 21.0
4 108 93 3.85 2.320 22.8
6 258 110 3.08 3.215 21.4
8 360 175 3.15 3.440 18.7
6 225 105 2.76 3.460 18.1
Code
mtcars %>%
   head() %>%
   select(cyl, mpg) %>%
   mutate(mpg_pct_max = round(mpg/max(mpg) * 100, digits = 2),
                 mpg_scaled = mpg/max(mpg) * 100) %>%
   mutate(mpg_unscaled = mpg) %>%
   gt() %>%
   gt_plt_bar_pct(column = mpg_scaled, scaled = TRUE) %>%
   gt_plt_bar_pct(column = mpg_unscaled, scaled = FALSE,
                  fill = "blue", background = "lightblue") %>%
   cols_align("center", contains("scale")) %>%
   cols_width(4 ~ px(125),
              5 ~ px(125))
cyl mpg mpg_pct_max mpg_scaled mpg_unscaled
6 21.0 92.11
6 21.0 92.11
4 22.8 100.00
6 21.4 93.86
8 18.7 82.02
6 18.1 79.39

2.1.5 自定义图片

Code
a=tibble(a=c(1:5),who=paste0('lp',1:5))
png<-paste0("./www/",list.files("./www",pattern = ".png"))
a$c=png[1:5]
a$d=png[6:10]
a%>% gt(groupname_col = "team_conf") %>% gt_img_rows(c) %>% gt_img_rows(d)
a who c d
1 lp1
2 lp2
3 lp3
4 lp4
5 lp5
Code
  # gt_merge_stack(col1 = team_nick, col2 = team_division) %>%

2.1.6 美元

Code
start_date <- "2010-06-07"
end_date <- "2010-06-14"
sp500 |>
  dplyr::filter(date >= start_date & date <= end_date) |>
  dplyr::select(-adj_close) |>
  gt() |>
  tab_header(
    title = "S&P 500",
    subtitle = glue::glue("{start_date} to {end_date}")
  ) |>
  fmt_currency() |>
  fmt_date(columns = date, date_style = "wd_m_day_year") |>
  fmt_number(columns = volume, suffixing = TRUE)
S&P 500
2010-06-07 to 2010-06-14
date open high low close volume
Mon, Jun 14, 2010 $1,095.00 $1,105.91 $1,089.03 $1,089.63 4.43B
Fri, Jun 11, 2010 $1,082.65 $1,092.25 $1,077.12 $1,091.60 4.06B
Thu, Jun 10, 2010 $1,058.77 $1,087.85 $1,058.77 $1,086.84 5.14B
Wed, Jun 9, 2010 $1,062.75 $1,077.74 $1,052.25 $1,055.69 5.98B
Tue, Jun 8, 2010 $1,050.81 $1,063.15 $1,042.17 $1,062.00 6.19B
Mon, Jun 7, 2010 $1,065.84 $1,071.36 $1,049.86 $1,050.47 5.47B

2.2 flextable

Code
library(flextable)
cars %>% flextable::as_flextable()

speed

dist

numeric

numeric

4

2

4

10

7

4

7

22

8

16

9

10

10

18

10

26

10

34

11

17

n: 50

2.3 stargazer

Code
library(stargazer)

2.4 可查询表格

Code
DT::datatable(mtcars)