read_rcl.R 1.17 KB
Newer Older
1
2
3
4
5
6
#' Read RCL file
#' 
#' @param path RCL file path
#' @return Parsed tibble of RCL file in \code{path}
#' @examples 
#' read_rcg("data/20220405162804-HELIOS_base_3-vs-enemy_2.rcl")
Keisuke ANDO's avatar
Keisuke ANDO committed
7
8
read_rcl <- function(path) {
  rcl <- path |>
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
    readr::read_lines() |>
    tibble::as_tibble() |>
    dplyr::mutate(
      step     = value |> stringr::str_extract("\\d+"),
      agent    = value |> stringr::str_extract("\\w+_([0-9]{1,2}|Coach)(?!\\))"),
      team     = agent |> stringr::str_remove("_([0-9]{1,2}|Coach)"),
      unum     = agent |> stringr::str_extract("([0-9]{1,2}|Coach)$"),
      commands = value |>
        stringr::str_extract("\\(.+\\)$") |>
        purrr::map(~ .x |>
                     stringr::str_split("\\(|\\)", simplify = TRUE) |>
                     stringr::str_trim() |>
                     purrr::discard(~ .x == "")),
    ) |>
    tidyr::unnest(commands) |>
    dplyr::mutate(
      commands = commands |> stringr::str_split("\\ ", n = 2),
      command  = commands |> purrr::map_chr(1),
      args     = commands |> purrr::map(~ .x[-1]),
    ) |>
    dplyr::select(
      step,
      team,
      unum,
      command,
      args,
#      line = value,
    )
Keisuke ANDO's avatar
Keisuke ANDO committed
37
38
39
  
  return(rcl)
}