From 4f82b1a0f09309a95bee875f60cbbb93c9b49eaa Mon Sep 17 00:00:00 2001 From: takumiamano Date: Tue, 20 Dec 2022 14:31:51 +0900 Subject: [PATCH] =?UTF-8?q?[add]xg=E7=94=A8=E3=81=AE=E3=83=87=E3=83=BC?= =?UTF-8?q?=E3=82=BF=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- R/make_data.R | 66 +++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 62 insertions(+), 4 deletions(-) diff --git a/R/make_data.R b/R/make_data.R index 139fc83..35f2fd1 100755 --- a/R/make_data.R +++ b/R/make_data.R @@ -214,12 +214,70 @@ 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::select(step,team,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_xg <- function(kick){ + output <- kick |> + dplyr::filter(shoot == TRUE) %>% + distinct(step, .keep_all = TRUE) %>% + 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)) %>% + dplyr::select(step,team,px,py,ball_x,ball_y,ball_goal_dist,ball_goal_angle) + return(output) +} +get_xg_label <- function(kick){ + output <- kick |> + dplyr::filter(shoot == TRUE) %>% + distinct(step, .keep_all = TRUE) %>% + dplyr::select(step,team,shoot_scc) + return(output) +} + +get_xg_l <- function(kick){ + output <- kick |> + dplyr::filter(shoot == TRUE) %>% + dplyr::filter(side == "l") %>% + distinct(step, .keep_all = TRUE) %>% + 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)) %>% + dplyr::select(px,py,ball_x,ball_y,ball_goal_dist,ball_goal_angle) + return(output) +} + +get_xg_l_label <- function(kick){ + output <- kick |> + dplyr::filter(shoot == TRUE) %>% + dplyr::filter(side == "l") %>% + distinct(step, .keep_all = TRUE) %>% + dplyr::select(shoot_scc) + return(output) +} + +get_xg_r <- function(kick){ + output <- kick |> + dplyr::filter(shoot == TRUE) %>% + dplyr::filter(side == "r") %>% + distinct(step, .keep_all = TRUE) %>% + dplyr::mutate(px = px * -1,py = py *-1,ball_x = -1 * ball_x,ball_y = ball_y * -1) %>% + 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)) %>% + dplyr::select(px,py,ball_x,ball_y,ball_goal_dist,ball_goal_angle) + return(output) +} + +get_xg_r_label <- function(kick){ + output <- kick |> + dplyr::filter(shoot == TRUE) %>% + dplyr::filter(side == "r") %>% + distinct(step, .keep_all = TRUE) %>% + dplyr::select(shoot_scc) + return(output) +} + get_dp <- function(dribbleAll){ output <- dribbleAll |> dplyr::mutate(p_speed = sqrt(pvx^2 + pvy^2)) %>% @@ -248,7 +306,7 @@ 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) + dplyr::select(step,side,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))) %>% @@ -266,8 +324,8 @@ get_shoot_epv <- function(players,shoot){ 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") - + dplyr::left_join(opp_triangle_in_player_num,by = "step") %>% + replace_na(list(triangle_in_player_num = 0, dist_ball_in_3m_num = 0)) return(output) } -- GitLab