read_old_rcg_ball <- function(path_rcg){ ball_log <- path_rcg |> readr::read_lines() |> tibble::as_tibble() |> dplyr::mutate( step = value |> stringr::str_extract("\\(show ([0-9]*)*") |> stringr::str_remove("\\(show "), ball = value |> stringr::str_extract("\\(\\(b\\)( [0-9\\-\\.]*)*\\)") |> stringr::str_remove("\\(\\(b\\) ") |> stringr::str_remove("\\)"), ball_x = ball |> stringr::str_extract("[0-9\\-\\.]+"), ball_y = ball |> stringr::str_remove(ball_x) |> stringr::str_extract("[0-9\\-\\.]+"), ball_vx = ball |> stringr::str_remove(ball_x) |> stringr::str_remove(ball_y) |> stringr::str_extract("[0-9\\-\\.]+"), ball_vy = ball |> stringr::str_remove(ball_x) |> stringr::str_remove(ball_y) |> stringr::str_remove(ball_vx) |> stringr::str_extract("[0-9\\-\\.]+"), step = as.numeric(step), # ball, ball_x = as.numeric(ball_x), ball_y = as.numeric(ball_y), ball_vx = as.numeric(ball_vx), ball_vy = as.numeric(ball_vy), )|> dplyr::select( step, # ball, ball_x, ball_y, ball_vx, ball_vy, ) %>% tidyr::drop_na() return(ball_log) } read_old_rcg_player <- function(path_rcg){ player_log <- path_rcg |> readr::read_lines() |> tibble::as_tibble() |> dplyr::mutate( step = value |> stringr::str_extract("\\(show ([0-9]*)*") |> stringr::str_remove("\\(show "), players = value |> stringr::str_extract_all("\\(\\([lr] [0-9]*\\) [0-9]* [0-9x]* ([0-9\\-\\.]* )*\\(v h [0-9\\-\\.]*\\) \\(s( [0-9\\-\\.]*)*\\)( \\(f [rl] [0-9\\-\\.]*\\))* \\(c( [0-9\\-\\.]*)*\\)\\)") ) |> tidyr::unnest(players) |> dplyr::mutate( player = players |> stringr::str_extract("\\([rl] [0-9]+\\)"), side = player |> stringr::str_extract("[rl]"), unum = player |> stringr::str_extract("[0-9]+"), params = players |> stringr::str_remove("\\([rl] [0-9]+\\)"), type = params|> stringr::str_extract("[0-9\\-\\.x]+"), l1 = params |> stringr::str_remove(type), state = l1 |> stringr::str_extract("[0-9\\-\\.x]+"), l2 = l1 |> stringr::str_remove(state), x = l2 |> stringr::str_extract("[0-9\\-\\.]+"), l3 = l2 |> stringr::str_remove(x), y = l3 |> stringr::str_extract("[0-9\\-\\.]+"), l4 = l3 |> stringr::str_remove(y), vx = l4 |> stringr::str_extract("[0-9\\-\\.]+"), l5 = l4 |> stringr::str_remove(vx), vy = l5 |> stringr::str_extract("[0-9\\-\\.]+"), l6 = l5 |> stringr::str_remove(vy), body = l6 |> stringr::str_extract("[0-9\\-\\.]+"), l7 = l6 |> stringr::str_remove(body), neck = l7 |> stringr::str_extract("[0-9\\-\\.]+"), l8 = l7 |> stringr::str_remove(neck), step = as.numeric(step), # players, # player, side, unum = unum, # params, # type, # state, x = as.numeric(x), y = as.numeric(y), vx = as.numeric(vx), vy = as.numeric(vy), body = as.numeric(body), neck = as.numeric(neck), ) |> dplyr::select( step, # players, # player, side, unum, # params, # type, # state, x, y, vx, vy, body, neck, ) %>% tidyr::drop_na() return(player_log) }