library(tidyverse)
── Attaching packages ───────────────── tidyverse 1.3.0 ──
✓ ggplot2 3.3.1.9000     ✓ purrr   0.3.4     
✓ tibble  3.0.1.9002     ✓ dplyr   1.0.0     
✓ tidyr   1.1.0          ✓ stringr 1.4.0     
✓ readr   1.3.1          ✓ forcats 0.5.0     
── Conflicts ──────────────────── tidyverse_conflicts() ──
x dplyr::filter() masks stats::filter()
x dplyr::lag()    masks stats::lag()
x <- bench::cb_read()

x %>%
  unnest(benchmarks) %>%
  filter(grepl("^v[1-9]", subject)) %>%
  mutate(assign = grepl("<-", name, fixed = TRUE)) %>%
  mutate(double = grepl("[[", name, fixed = TRUE)) %>%
  mutate(dollar = grepl("$", name, fixed = TRUE)) %>%
  mutate(op = case_when(
    dollar ~ "$",
    double ~ "[[",
    TRUE   ~ "["
  )) %>%
  ggplot(aes(x = subject, y = p50, group = name)) +
  geom_line(alpha = 0.3) +
  bench::scale_y_bench_time() +
  theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5)) +
  facet_grid(vars(assign), vars(op), labeller = "label_both")

IycgLS0tCiMnIG91dHB1dDogaHRtbF9ub3RlYm9vawojJyAtLS0KCmxpYnJhcnkodGlkeXZlcnNlKQoKeCA8LSBiZW5jaDo6Y2JfcmVhZCgpCgp4ICU+JQogIHVubmVzdChiZW5jaG1hcmtzKSAlPiUKICBmaWx0ZXIoZ3JlcGwoIl52WzEtOV0iLCBzdWJqZWN0KSkgJT4lCiAgbXV0YXRlKGFzc2lnbiA9IGdyZXBsKCI8LSIsIG5hbWUsIGZpeGVkID0gVFJVRSkpICU+JQogIG11dGF0ZShkb3VibGUgPSBncmVwbCgiW1siLCBuYW1lLCBmaXhlZCA9IFRSVUUpKSAlPiUKICBtdXRhdGUoZG9sbGFyID0gZ3JlcGwoIiQiLCBuYW1lLCBmaXhlZCA9IFRSVUUpKSAlPiUKICBtdXRhdGUob3AgPSBjYXNlX3doZW4oCiAgICBkb2xsYXIgfiAiJCIsCiAgICBkb3VibGUgfiAiW1siLAogICAgVFJVRSAgIH4gIlsiCiAgKSkgJT4lCiAgZ2dwbG90KGFlcyh4ID0gc3ViamVjdCwgeSA9IHA1MCwgZ3JvdXAgPSBuYW1lKSkgKwogIGdlb21fbGluZShhbHBoYSA9IDAuMykgKwogIGJlbmNoOjpzY2FsZV95X2JlbmNoX3RpbWUoKSArCiAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA5MCwgaGp1c3QgPSAxLCB2anVzdCA9IDAuNSkpICsKICBmYWNldF9ncmlkKHZhcnMoYXNzaWduKSwgdmFycyhvcCksIGxhYmVsbGVyID0gImxhYmVsX2JvdGgiKQo=