본문 바로가기
  • "You can't manage what you can't measure" Peter Drucker
데이터 분석 (with Rstudio)

Rstudio 데이터 분석 with FIFA 월드컵 데이터 #5 (대한민국)

by Vitaminymc 2023. 8. 12.
반응형

대한민국 월드컵 성적

Image Source : 나무위키 대한민국 축구 국가대표팀

https://namu.wiki/w/%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD%20%EC%B6%95%EA%B5%AC%20%EA%B5%AD%EA%B0%80%EB%8C%80%ED%91%9C%ED%8C%80


total_wcmatches  (wcmatches + wc2022, 2022년 대회까지 포함한 데이터 세트)

Rstudio with FIFA 월드컵 데이터 (2022년 카타르 추가) (tistory.com) 

#대한민국 성적만 추출
kor_team <- total_wcmatches %>%
  filter (home_team == "South Korea" | away_team == "South Korea") 

#승리팀이 대한민국 경우 추출
no_win <- kor_team %>%
  filter(winning_team == "South Korea") 

# 승리 횟수
nrow(no_win)

no_win
> nrow(no_win)
[1] 8
year country city stage home_team away_team home_score away_score outcome win_conditions winning_team losing_team date
2002 South Korea Busan Group D South Korea Poland 2 0 H   South Korea Poland 2002-06-04
2002 South Korea Incheon Group D South Korea Portugal 1 0 H   South Korea Portugal 2002-06-14
2002 South Korea Daejeon Round of 16 South Korea Italy 2 1 H South Korea won in AET South Korea Italy 2002-06-18
2002 South Korea Gwangju Quarterfinals South Korea Spain 0 0 H South Korea won in penalties (5 - 3) South Korea Spain 2002-06-22
2006 Germany Frankfurt am Main Group G South Korea Togo 2 1 H   South Korea Togo 2006-06-13
2010 South Africa Port Elizabeth Group B South Korea Greece 2 0 H   South Korea Greece 2010-06-12
2018 Russia Kazan Group F South Korea Germany 2 0 H   South Korea Germany 2018-06-27
2022 Qatar Al Rayyan Group H South Korea Portugal 2 1 H   South Korea Portugal 2022-12-02
  • 대한민국의 월드컵 첫 승은 2002년 한일월드컵 6월 4일 폴란드 전 (부산)
  • 2002년 폴란드와 포르투갈을 이기고 16강에서 이탈리아를 연장전에서 승리,
    8강에서 스페인을 승부차기 5:3으로 승리  → 2002년 한일 월드컵에서만 4승
  • 2006년 독일 대회는 토고를 상대로 1승, 2010년 남아공 대회는 그리스를 상대로 1승
  • 2018년 러시아 대회는 독일을 상대로 1승, 2022년 카타르 대회는 포르투갈을 상대로 1승
#승리팀이 없는 경우(무승부) 추출
no_draw <- kor_team %>%
  filter(is.na(winning_team)) 

# 승리 횟수
nrow(no_draw )

no_draw 
> nrow(no_draw )
[1] 9
year country city stage home_team away_team home_score away_score outcome win_conditions winning_team losing_team date
1986 Mexico Mexico City Group A South Korea Bulgaria 1 1 D       1986-06-05
1994 United States Dallas Group C Spain South Korea 2 2 D       1994-06-17
1994 United States Foxborough Group C South Korea Bolivia 0 0 D       1994-06-23
1998 France Paris Group E Belgium South Korea 1 1 D       1998-06-25
2002 South Korea Daegu Group D South Korea United States 1 1 D       2002-06-10
2006 Germany Leipzig Group G France South Korea 1 1 D       2006-06-18
2010 South Africa Durban Group B Nigeria South Korea 2 2 D       2010-06-22
2014 Brazil Cuiabá Group H Russia South Korea 1 1 D       2014-06-17
2022 Qatar Al Rayyan Group H Uruguay South Korea 0 0 D       2022-11-24
  • 대한민국의 월드컵 첫 무승부는 1986년 멕시코월드컵 불가리아전
  • 1994년 월드컵에서는 스페인과 볼리비아를 상대로 무승부만 2번
#패배팀이 대한민국 경우 추출
no_lose <- kor_team %>%
  filter(losing_team == "South Korea") 

# 패 횟수
nrow(no_lose)

no_lose
> nrow(no_lose)
[1] 21
year country city stage home_team away_team home_score away_score outcome win_conditions winning_team losing_team date
1954 Switzerland Zürich Group 2 Hungary South Korea 9 0 H   Hungary South Korea 1954-06-17
1954 Switzerland Geneva Group 2 South Korea Turkey 0 7 A   Turkey South Korea 1954-06-20
1986 Mexico Mexico City Group A Argentina South Korea 3 1 H   Argentina South Korea 1986-06-02
1986 Mexico Puebla Group A South Korea Italy 2 3 A   Italy South Korea 1986-06-10
1990 Italy Verona Group E Belgium South Korea 2 0 H   Belgium South Korea 1990-06-12
1990 Italy Udine Group E South Korea Spain 1 3 A   Spain South Korea 1990-06-17
1990 Italy Udine Group E South Korea Uruguay 0 1 A   Uruguay South Korea 1990-06-21
1994 United States Dallas Group C Germany South Korea 3 2 H   Germany South Korea 1994-06-27
1998 France Lyon Group E South Korea Mexico 1 3 A   Mexico South Korea 1998-06-13
1998 France Marseille Group E Netherlands South Korea 5 0 H   Netherlands South Korea 1998-06-20
2002 South Korea Seoul Semifinals South Korea Germany 0 1 A   Germany South Korea 2002-06-25
2002 South Korea Daegu Third place South Korea Turkey 2 3 A   Turkey South Korea 2002-06-29
2006 Germany Hanover Group H Switzerland South Korea 2 0 H   Switzerland South Korea 2006-06-23
2010 South Africa Johannesburg Group B Argentina South Korea 4 1 H   Argentina South Korea 2010-06-17
2010 South Africa Port Elizabeth Round of 16 Uruguay South Korea 2 1 H   Uruguay South Korea 2010-06-26
2014 Brazil Porto Alegre Group H South Korea Algeria 2 4 A   Algeria South Korea 2014-06-22
2014 Brazil São Paulo Group H South Korea Belgium 0 1 A   Belgium South Korea 2014-06-26
2018 Russia Nizhny Novgorod Group F Sweden South Korea 1 0 H   Sweden South Korea 2018-06-18
2018 Russia Rostov-on-Don Group F South Korea Mexico 1 2 A   Mexico South Korea 2018-06-23
2022 Qatar Al Rayyan Group H South Korea Ghana 2 3 A   Ghana South Korea 2022-11-28
2022 Qatar Doha Round of 16 Brazil South Korea 4 1 H   Brazil South Korea 2022-12-05
  • 패배 횟수는 21번 
  • 1954년 스위스 대회는 헝가리에 9:0 패, 튀르키예에 (터키)에 7:0 패
  • 1990년 이탈리아 대회는 3패 (조별 예선 전패)
  • 1986년 멕시코 대회 2패, 1998년 프랑스 대회는 2패, 2014년 브라질 대회 2패, 2018년 러시아 대회 2패
  • 2002년 한일월드컵 4강, 3-4위전에서 패배, 2010년 남아공 대회 16강 패배, 2022년 카타르 대회 16강 패배
korea_stats <- kor_team %>%
  mutate(result = case_when(
    (home_team == "South Korea" & outcome == "H") | (home_team != "South Korea" & outcome == "A") ~ "win",
    outcome == "D" ~ "draw",
    TRUE ~ "loss"
  )) %>%
  group_by(year, country) %>%
  summarise(
    no_games = n(),
    wins = sum(result == "win"),
    draws = sum(result == "draw"),
    losses = sum(result == "loss")
   )
   
korea_stats
  • case_when 함수를 사용하여 대한민국의 승패 여부를 판단하고, 이를 기반으로 각 대회별 승수, 무승부 수, 패배 수를 계산
  • mutate 함수로 만든 result 열이 "win"인 경우에만 TRUE가 되며, 해당 조건을 만족하는 행들의 개수 계산
  • 같은 방식으로 "draws"와 "losses"의 횟수도 계산

case_when 함수

  • case_when 함수는 다양한 조건에 따라 값을 할당하거나 변환하는 데 사용되는 함수
  • 다양한 조건에 따른 분류 등 다양한 상황에서 유용하게 사용
  • if-else 문을 사용할 때 보다 가독성이 좋고 여러 조건을 간결하게 처리할 수 있는 장점이 있음
case_when(
  조건1 ~ 값1,
  조건2 ~ 값2,
  조건3 ~ 값3,
  ...
  TRUE ~ 기본값
)
  • 조건1, 조건2, 조건3 등은 논리 조건식이고, 값1, 값2, 값3 등은 조건이 참일 때 반환될 값
  • 이 조건들 중에서 처음으로 참인 조건에 해당하는 경우, 그 조건에 대응하는 값이 결과로 반환
  • TRUE ~ 기본값은 어떤 조건도 참이 아닌 경우, 즉 모든 조건이 거짓일 때 사용될 기본값 (이 부분은 선택사항)
score <- c(90, 75, 88, 62, 45)
grade <- case_when(
  score >= 90 ~ "A",
  score >= 80 ~ "B",
  score >= 70 ~ "C",
  score >= 60 ~ "D",
  TRUE ~ "F"
)

print(grade)
[1] "A" "C" "B" "D" "F"
score <- c(90, 75, 88, 62, 45)
grade <- case_when(
  score >= 90 ~ "A",
  score >= 80 ~ "B",
  score >= 70 ~ "C",
  score >= 60 ~ "D"
)
[1] "A" "C" "B" "D" NA 
  • 점수에 따라 조건에 맞는 학점이 할당되고, TRUE ~ "F" 부분에서 모든 조건이 거짓일 때 기본값으로 "F"가 할당

year country no_games wins draws losses
1954 Switzerland 2 0 0 2
1986 Mexico 3 0 1 2
1990 Italy 3 0 0 3
1994 United States 3 0 2 1
1998 France 3 0 1 2
2002 South Korea 7 4 1 2
2006 Germany 3 1 1 1
2010 South Africa 4 1 1 2
2014 Brazil 3 0 1 2
2018 Russia 3 1 0 2
2022 Qatar 4 1 1 2
totals <- korea_stats %>%
    group_by() %>%
    summarise(
          total_games = sum(no_games),
          total_wins = sum(wins),
          total_draws = sum(draws),
          total_losses = sum(losses)


totals 
total_games total_wins total_draws total_losses
38 8 9 21
    • 1954년 대회부터 2022년 대회가지 총 38경기, 8승-9무-21패 (조별 예선 ~ 토너먼트)

분석 결과 확인 (인터넷 검색 결과와 비교)

    • 분석 결과 (38경기, 8승-9무-21패) VS. 검색 결과 (38경기, 7승-10무-21패)
    • "나무위키 : 대한민국 축구 국가대표팀/FIFA 월드컵"는 스페인의 8강전을 무승부로 반영
      • 승부차기를 무승부로 반영 (wcmatches.csv는 승부차기 결과 반영하여, winning_team 반영)

나무위키 :&nbsp;대한민국 축구 국가대표팀/FIFA 월드컵

https://namu.wiki/w/%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD%20%EC%B6%95%EA%B5%AC%20%EA%B5%AD%EA%B0%80%EB%8C%80%ED%91%9C%ED%8C%80/FIFA%20%EC%9B%94%EB%93%9C%EC%BB%B5

728x90