Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Keisuke ANDO
socceR
Commits
39740e4a
Commit
39740e4a
authored
Dec 07, 2022
by
Keisuke ANDO
😌
Browse files
Summarize functions to read log
parent
1b31b399
Changes
1
Show whitespace changes
Inline
Side-by-side
R/read_log.R
0 → 100644
View file @
39740e4a
#' Read log file
#'
#' @param path log file path
#' @return Parsed tibble of log file in \code{path}
#' @export
#' @examples
#' rcg <- read_log("data/20220405162804-HELIOS_base_3-vs-enemy_2.rcg")
#' rcl <- read_log("data/20220304142841-HELIOS_base_1-vs-ThunderLeague_1.rcl")
read_log
<-
function
(
path
)
{
ext
<-
path
|>
path
()
|>
path_ext
()
if
(
ext
==
"rcg"
)
{
return
(
read_rcg
(
path
))
}
if
(
ext
==
"rcl"
)
{
return
(
read_rcl
(
path
))
}
stop
(
"Not supported format: "
,
path
)
}
#' @rdname read_log
#' @export
read_rcg
<-
function
(
path
)
{
rcg
<-
path
|>
read_file
()
|>
parse_json
(
simplifyVector
=
TRUE
,
flatten
=
TRUE
)
|>
as_tibble
()
|>
filter
(
type
==
"show"
)
|>
select
(
time
,
stime
,
players
,
ball.x
,
ball.y
,
ball.vx
,
ball.vy
)
|>
unnest
(
players
)
|>
select
(
time
:
capacity
,
ball.x
:
ball.vy
)
|>
rename
(
step
=
time
)
|>
rename_with
(
stringr
::
str_replace
,
pattern
=
"\\."
,
replacement
=
"_"
)
return
(
rcg
)
}
#' @rdname read_log
#' @export
read_rcl
<-
function
(
path
)
{
rcl
<-
path
|>
read_lines
()
|>
as_tibble
()
|>
mutate
(
step
=
value
|>
stringr
::
str_extract
(
"\\d+"
)
|>
as.numeric
(),
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
==
""
)),
)
|>
unnest
(
commands
)
|>
mutate
(
commands
=
commands
|>
stringr
::
str_split
(
"\\ "
,
n
=
2
),
command
=
commands
|>
purrr
::
map_chr
(
1
),
args
=
commands
|>
purrr
::
map
(
~
.x
[
-1
]),
)
|>
select
(
step
,
team
,
unum
,
command
,
args
)
return
(
rcl
)
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment