Code
# 必要なライブラリをロード
library(dplyr)
library(readr)
# チーム名と省略形の対応表を読み込む
team_abbreviations <- read_csv("teamname2021.csv")
head(team_abbreviations)# A tibble: 6 × 2
team_name abbreviation
<chr> <chr>
1 Real Sociedad RSO
2 Real Valladolid CF VLL
3 Valencia CF VAL
4 Sevilla FC SEV
5 CA Osasuna OSA
6 FC Barcelona FCB
Code
# データを読み込む
data1 <- read_csv("es_2021.1_new.csv")
head(data1)# A tibble: 6 × 5
Round Date `Team 1` FT `Team 2`
<dbl> <chr> <chr> <chr> <chr>
1 1 Sat Sep 12 2020 SD Eibar 0-0 RC Celta Vigo
2 1 Sat Sep 12 2020 Granada CF 2-0 Athletic Club Bilbao
3 1 Sat Sep 12 2020 Cádiz CF 0-2 CA Osasuna
4 1 Sun Sep 13 2020 Deportivo Alavés 0-1 Real Betis
5 1 Sun Sep 13 2020 Real Valladolid CF 1-1 Real Sociedad
6 1 Sun Sep 13 2020 Villarreal CF 1-1 SD Huesca
Code
# チーム名を省略形に変換する関数を定義
get_abbreviation <- function(team_name) {
abbreviation <- team_abbreviations %>% filter(team_name == !!team_name) %>% pull(abbreviation)
if (length(abbreviation) == 0) {
return(NA)
} else {
return(abbreviation)
}
}
# 新しいデータフレームを作成
data2 <- data1 %>%
# HOMEチームのデータ
mutate(
HOME.AWAY = "HOME",
Result = case_when(
sub("-.*", "", FT) == sub(".*-", "", FT) ~ "DRAW",
sub("-.*", "", FT) > sub(".*-", "", FT) ~ "WIN",
TRUE ~ "LOSE"
),
Score1 = as.numeric(sub("-.*", "", FT)),
Score2 = as.numeric(sub(".*-", "", FT)),
WinPoint = case_when(
Result == "WIN" ~ 3,
Result == "DRAW" ~ 1,
TRUE ~ 0
),
Team1_Abbreviation = sapply(`Team 1`, get_abbreviation),
Team2_Abbreviation = sapply(`Team 2`, get_abbreviation)
) %>%
rename(Team1 = `Team 1`, Team2 = `Team 2`) %>%
select(Round, Date, HOME.AWAY, Team1, Team1_Abbreviation, Result, Team2, Team2_Abbreviation, Score1, Score2, WinPoint) %>%
# AWAYチームのデータを追加
bind_rows(
data1 %>%
mutate(
HOME.AWAY = "AWAY",
Result = case_when(
sub("-.*", "", FT) == sub(".*-", "", FT) ~ "DRAW",
sub("-.*", "", FT) < sub(".*-", "", FT) ~ "WIN",
TRUE ~ "LOSE"
),
Score1 = as.numeric(sub(".*-", "", FT)),
Score2 = as.numeric(sub("-.*-", "", FT)),
WinPoint = case_when(
Result == "WIN" ~ 3,
Result == "DRAW" ~ 1,
TRUE ~ 0
),
Team1_Abbreviation = sapply(`Team 2`, get_abbreviation),
Team2_Abbreviation = sapply(`Team 1`, get_abbreviation)
) %>%
rename(Team1 = `Team 2`, Team2 = `Team 1`) %>%
select(Round, Date, HOME.AWAY, Team1, Team1_Abbreviation, Result, Team2, Team2_Abbreviation, Score1, Score2, WinPoint)
)
# 結果を確認
head(data2)# A tibble: 6 × 11
Round Date HOME.AWAY Team1 Team1_Abbreviation Result Team2 Team2_Abbreviation
<dbl> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 1 Sat … HOME SD E… EIB DRAW RC C… CEL
2 1 Sat … HOME Gran… GRA WIN Athl… ATH
3 1 Sat … HOME Cádi… CAD LOSE CA O… OSA
4 1 Sun … HOME Depo… <NA> LOSE Real… BET
5 1 Sun … HOME Real… VLL DRAW Real… RSO
6 1 Sun … HOME Vill… VIL DRAW SD H… HUE
# ℹ 3 more variables: Score1 <dbl>, Score2 <dbl>, WinPoint <dbl>
Code
# データをcsvに保存
#write_csv(data2, "es2021new2.csv")