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
9b7e41c4
Commit
9b7e41c4
authored
Dec 19, 2022
by
Takumi Amano
💬
Browse files
[add] シュートに関するデータの作成
parent
3a4dc41e
Changes
1
Hide whitespace changes
Inline
Side-by-side
R/make_data.R
View file @
9b7e41c4
...
...
@@ -182,6 +182,16 @@ get_dribble_Allplayer <- function(players, dribble) {
return
(
output
)
}
get_shoot_Allplayer
<-
function
(
players
,
shoot
)
{
shoot
<-
shoot
%>%
dplyr
::
select
(
step
,
shoot_team
=
team
,
ball_x
,
ball_y
,
ball_vx
,
ball_vy
,
next_ball_x
,
next_ball_y
,
next_ball_vx
,
next_ball_vy
,
shoot
,
shoot_scc
,
ball_goal_dist
,
ball_goal_angle
)
output
<-
players
%>%
dplyr
::
inner_join
(
shoot
,
by
=
"step"
)
%>%
dplyr
::
distinct
(
step
,
team
,
unum
,
.keep_all
=
TRUE
)
%>%
dplyr
::
mutate
(
ball_player_dist
=
sqrt
((
px
-
ball_x
)
^
2
+
(
py
-
ball_y
)
^
2
))
return
(
output
)
}
get_pass
<-
function
(
kick
)
{
output
<-
kick
|>
dplyr
::
filter
(
pass
==
TRUE
)
%>%
...
...
@@ -200,6 +210,16 @@ get_dribble <- function(kick) {
return
(
output
)
}
get_shoot
<-
function
(
kick
)
{
output
<-
kick
%>%
dplyr
::
filter
(
shoot
==
TRUE
)
%>%
distinct
(
step
,
.keep_all
=
TRUE
)
%>%
dplyr
::
select
(
step
,
team
,
unum
,
px
,
py
,
pvx
,
pvy
,
ball_x
,
ball_y
,
ball_vx
,
ball_vy
,
next_ball_x
,
next_ball_y
,
next_ball_vx
,
next_ball_vy
,
shoot
,
shoot_scc
)
%>%
dplyr
::
mutate
(
ball_goal_dist
=
sqrt
((
54
-
abs
(
ball_x
))
^
2
+
abs
((
ball_y
))
^
2
))
%>%
dplyr
::
mutate
(
ball_goal_angle
=
atan2
((
54
-
abs
(
ball_x
)),
ball_y
))
return
(
output
)
}
get_dp
<-
function
(
dribbleAll
){
output
<-
dribbleAll
|>
dplyr
::
mutate
(
p_speed
=
sqrt
(
pvx
^
2
+
pvy
^
2
))
%>%
...
...
@@ -208,6 +228,49 @@ get_dp <- function(dribbleAll){
return
(
output
)
}
get_as
<-
function
(
kick
){
output
<-
kick
|>
dplyr
::
select
(
step
,
action_team
=
team
,
shoot
,
dribble
,
pass
)
return
(
output
)
}
get_goalkeeper_action
<-
function
(
actionAll
){
output
<-
actionAll
|>
dplyr
::
filter
(
unum
==
1
)
%>%
dplyr
::
mutate
(
ball_keeper_dist_x
=
sqrt
((
px
-
ball_x
)
^
2
))
%>%
dplyr
::
mutate
(
player_goal_dist
=
sqrt
((
54
-
abs
(
px
))
^
2
+
abs
((
py
))
^
2
))
%>%
dplyr
::
mutate
(
opp_team
=
(
team
!=
shoot_team
))
%>%
dplyr
::
mutate
(
ball_closer_goal_goalkeeper
=
opp_team
&
(
ball_goal_dist
<
player_goal_dist
))
return
(
output
)
}
get_shoot_epv
<-
function
(
players
,
shoot
){
shootAll
<-
get_shoot_Allplayer
(
players
,
shoot
)
goalkeeper
<-
get_goalkeeper_action
(
shootAll
)
|>
dplyr
::
filter
(
team
!=
shoot_team
)
|>
dplyr
::
select
(
step
,
ball_keeper_dist_x
,
keeper_goal_dist
=
player_goal_dist
,
ball_closer_goal_goalkeeper
)
opponent_team
<-
shootAll
|>
dplyr
::
filter
(
team
!=
shoot_team
)
%>%
dplyr
::
mutate
(
r_post_x
=
(
ball_x
+
(
py
-
ball_y
)
*
(
7
-
ball_x
)
/
(
-54
-
ball_y
)))
%>%
dplyr
::
mutate
(
l_post_x
=
(
ball_x
+
(
py
-
ball_y
)
*
(
-7
-
ball_x
)
/
(
-54
-
ball_y
)))
%>%
dplyr
::
mutate
(
triangle_in_player
=
(
px
>
l_post_x
)
&
(
px
<
r_post_x
))
%>%
dplyr
::
mutate
(
dist_ball_in_3m
=
(
ball_player_dist
<
3
))
opp_triangle_in_player_num
<-
opponent_team
|>
dplyr
::
filter
(
triangle_in_player
)
%>%
dplyr
::
group_by
(
step
)
%>%
dplyr
::
summarise
(
triangle_in_player_num
=
n
())
opp_dist_ball_in_3m_num
<-
opponent_team
|>
dplyr
::
filter
(
dist_ball_in_3m
)
%>%
dplyr
::
group_by
(
step
)
%>%
dplyr
::
summarise
(
dist_ball_in_3m_num
=
n
())
output
<-
shoot
|>
dplyr
::
left_join
(
goalkeeper
,
by
=
"step"
)
%>%
dplyr
::
left_join
(
opp_dist_ball_in_3m_num
,
by
=
"step"
)
%>%
dplyr
::
left_join
(
opp_triangle_in_player_num
,
by
=
"step"
)
return
(
output
)
}
before_goal
<-
function
(
kick_log
,
goal_step
,
goal_team
)
{
playlist
<-
kick_log
%>%
dplyr
::
arrange
(
desc
(
step
))
%>%
...
...
@@ -287,6 +350,7 @@ get_name <- function(path_rcg) {
replase_rcg_to_rcl
<-
function
(
path_rcg
)
{
output
<-
path_rcg
|>
stringr
::
str_replace
(
pattern
=
".rcg"
,
replacement
=
".rcl"
)
}
replase_rcl_to_rcg
<-
function
(
path_rcl
)
{
output
<-
path_rcl
|>
stringr
::
str_replace
(
pattern
=
".rcl"
,
replacement
=
".rcg"
)
}
...
...
@@ -376,6 +440,7 @@ get_DynamicPressureLine_D <- function(dribble) {
dplyr
::
select
(
step
,
AL
,
ML
,
DL
)
return
(
output
)
}
add_DynamicPressureLine
<-
function
(
action_All
,
name
){
action_l
<-
select_name
(
action_All
,
name
[
1
,
2
])
action_r
<-
select_name
(
action_All
,
name
[
2
,
2
])
...
...
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