library(readr)
library(dplyr)
library(jiebaR)
library(tidyr)
library(tidytext)
library(igraph)
library(topicmodels)
library(stringr)
library(ggplot2)
library(data.table)
*載入世界杯舉辦年度與舉辦國家之相關資料
#setwd("D:/Learning/31class/report")
#讀取資料
getwd()
[1] "/Users/arielchang/Desktop"
setwd("/Users/arielchang/Desktop/0514")
The working directory was changed to /Users/arielchang/Desktop/0514 inside a notebook chunk. The working directory will be reset when the chunk is finished running. Use the knitr root.dir option in the setup chunk to change the working directory for notebook chunks.
worldCups<-fread("WorldCups.csv",
header = T,stringsAsFactors = F, encoding = "UTF-8")
head(worldCups,20)
Year Country Winner Runners-Up Third
1: 1930 Uruguay Uruguay Argentina USA
2: 1934 Italy Italy Czechoslovakia Germany
3: 1938 France Italy Hungary Brazil
4: 1950 Brazil Uruguay Brazil Sweden
5: 1954 Switzerland Germany FR Hungary Austria
6: 1958 Sweden Brazil Sweden France
7: 1962 Chile Brazil Czechoslovakia Chile
8: 1966 England England Germany FR Portugal
9: 1970 Mexico Brazil Italy Germany FR
10: 1974 Germany Germany FR Netherlands Poland
11: 1978 Argentina Argentina Netherlands Brazil
12: 1982 Spain Italy Germany FR Poland
13: 1986 Mexico Argentina Germany FR France
14: 1990 Italy Germany FR Argentina Italy
15: 1994 USA Brazil Italy Sweden
16: 1998 France France Brazil Croatia
17: 2002 Korea/Japan Brazil Germany Turkey
18: 2006 Germany Italy France Germany
19: 2010 South Africa Spain Netherlands Germany
20: 2014 Brazil Germany Argentina Netherlands
Fourth GoalsScored QualifiedTeams MatchesPlayed
1: Yugoslavia 70 13 18
2: Austria 70 16 17
3: Sweden 84 15 18
4: Spain 88 13 22
5: Uruguay 140 16 26
6: Germany FR 126 16 35
7: Yugoslavia 89 16 32
8: Soviet Union 89 16 32
9: Uruguay 95 16 32
10: Brazil 97 16 38
11: Italy 102 16 38
12: France 146 24 52
13: Belgium 132 24 52
14: England 115 24 52
15: Bulgaria 141 24 52
16: Netherlands 171 32 64
17: Korea Republic 161 32 64
18: Portugal 147 32 64
19: Uruguay 145 32 64
20: Brazil 171 32 64
Attendance
1: 590.549
2: 363.000
3: 375.700
4: 1.045.246
5: 768.607
6: 819.810
7: 893.172
8: 1.563.135
9: 1.603.975
10: 1.865.753
11: 1.545.791
12: 2.109.723
13: 2.394.031
14: 2.516.215
15: 3.587.538
16: 2.785.100
17: 2.705.197
18: 3.359.439
19: 3.178.856
20: 3.386.810
*載入世界杯舉辦比賽資訊
# 讀取資料
getwd()
[1] "/Users/arielchang/Desktop"
setwd("/Users/arielchang/Desktop/0514")
The working directory was changed to /Users/arielchang/Desktop/0514 inside a notebook chunk. The working directory will be reset when the chunk is finished running. Use the knitr root.dir option in the setup chunk to change the working directory for notebook chunks.
WorldCupMatches<-fread("WorldCupMatches.csv",
header = T,stringsAsFactors = F, encoding = "UTF-8")
head(WorldCupMatches)
Year Datetime Stage Stadium
1: 1930 13 Jul 1930 - 15:00 Group 1 Pocitos
2: 1930 13 Jul 1930 - 15:00 Group 4 Parque Central
3: 1930 14 Jul 1930 - 12:45 Group 2 Parque Central
4: 1930 14 Jul 1930 - 14:50 Group 3 Pocitos
5: 1930 15 Jul 1930 - 16:00 Group 1 Parque Central
6: 1930 16 Jul 1930 - 14:45 Group 1 Parque Central
City Home Team Name Home Team Goals
1: Montevideo France 4
2: Montevideo USA 3
3: Montevideo Yugoslavia 2
4: Montevideo Romania 3
5: Montevideo Argentina 1
6: Montevideo Chile 3
Away Team Goals Away Team Name Win conditions Attendance
1: 1 Mexico 4444
2: 0 Belgium 18346
3: 1 Brazil 24059
4: 1 Peru 2549
5: 0 France 23409
6: 0 Mexico 9249
Half-time Home Goals Half-time Away Goals
1: 3 0
2: 2 0
3: 2 0
4: 1 0
5: 0 0
6: 1 0
Referee Assistant 1
1: LOMBARDI Domingo (URU) CRISTOPHE Henry (BEL)
2: MACIAS Jose (ARG) MATEUCCI Francisco (URU)
3: TEJADA Anibal (URU) VALLARINO Ricardo (URU)
4: WARNKEN Alberto (CHI) LANGENUS Jean (BEL)
5: REGO Gilberto (BRA) SAUCEDO Ulises (BOL)
6: CRISTOPHE Henry (BEL) APHESTEGUY Martin (URU)
Assistant 2 RoundID MatchID
1: REGO Gilberto (BRA) 201 1096
2: WARNKEN Alberto (CHI) 201 1090
3: BALWAY Thomas (FRA) 201 1093
4: MATEUCCI Francisco (URU) 201 1098
5: RADULESCU Constantin (ROU) 201 1085
6: LANGENUS Jean (BEL) 201 1095
Home Team Initials Away Team Initials
1: FRA MEX
2: USA BEL
3: YUG BRA
4: ROU PER
5: ARG FRA
6: CHI MEX
*載入世界杯比賽球員資料
getwd()
[1] "/Users/arielchang/Desktop"
setwd("/Users/arielchang/Desktop/0514")
The working directory was changed to /Users/arielchang/Desktop/0514 inside a notebook chunk. The working directory will be reset when the chunk is finished running. Use the knitr root.dir option in the setup chunk to change the working directory for notebook chunks.
WorldCupPlayers<-fread("WorldCupPlayers.csv",
header = T,stringsAsFactors = F, encoding = "UTF-8")
head(WorldCupPlayers,20)
RoundID MatchID Team Initials Coach Name
1: 201 1096 FRA CAUDRON Raoul (FRA)
2: 201 1096 MEX LUQUE Juan (MEX)
3: 201 1096 FRA CAUDRON Raoul (FRA)
4: 201 1096 MEX LUQUE Juan (MEX)
5: 201 1096 FRA CAUDRON Raoul (FRA)
6: 201 1096 MEX LUQUE Juan (MEX)
7: 201 1096 FRA CAUDRON Raoul (FRA)
8: 201 1096 MEX LUQUE Juan (MEX)
9: 201 1096 FRA CAUDRON Raoul (FRA)
10: 201 1096 MEX LUQUE Juan (MEX)
11: 201 1096 FRA CAUDRON Raoul (FRA)
12: 201 1096 MEX LUQUE Juan (MEX)
13: 201 1096 FRA CAUDRON Raoul (FRA)
14: 201 1096 MEX LUQUE Juan (MEX)
15: 201 1096 FRA CAUDRON Raoul (FRA)
16: 201 1096 MEX LUQUE Juan (MEX)
17: 201 1096 FRA CAUDRON Raoul (FRA)
18: 201 1096 MEX LUQUE Juan (MEX)
19: 201 1096 FRA CAUDRON Raoul (FRA)
20: 201 1096 MEX LUQUE Juan (MEX)
Line-up Shirt Number Player Name Position
1: S 0 Alex THEPOT GK
2: S 0 Oscar BONFIGLIO GK
3: S 0 Marcel LANGILLER
4: S 0 Juan CARRENO
5: S 0 Ernest LIBERATI
6: S 0 Rafael GARZA C
7: S 0 Andre MASCHINOT
8: S 0 Hilario LOPEZ
9: S 0 Etienne MATTLER
10: S 0 Dionisio MEJIA
11: S 0 Marcel PINEL
12: S 0 Felipe ROSAS
13: S 0 Alex VILLAPLANE C
14: S 0 Manuel ROSAS
15: S 0 Lucien LAURENT
16: S 0 Jose RUIZ
17: S 0 Marcel CAPELLE
18: S 0 Alfredo SANCHEZ
19: S 0 Augustin CHANTREL
20: S 0 Efrain AMEZCUA
Event
1:
2:
3: G40'
4: G70'
5:
6:
7: G43' G87'
8:
9:
10:
11:
12:
13:
14:
15: G19'
16:
17:
18:
19:
20:
# 只選取需要的欄位
allData = merge(WorldCupMatches,WorldCupPlayers,by=c("RoundID","MatchID"))
head(allData)
RoundID MatchID Year Datetime Stage
1: 201 1084 1930 22 Jul 1930 - 14:45 Group 1
2: 201 1084 1930 22 Jul 1930 - 14:45 Group 1
3: 201 1084 1930 22 Jul 1930 - 14:45 Group 1
4: 201 1084 1930 22 Jul 1930 - 14:45 Group 1
5: 201 1084 1930 22 Jul 1930 - 14:45 Group 1
6: 201 1084 1930 22 Jul 1930 - 14:45 Group 1
Stadium City Home Team Name
1: Estadio Centenario Montevideo Argentina
2: Estadio Centenario Montevideo Argentina
3: Estadio Centenario Montevideo Argentina
4: Estadio Centenario Montevideo Argentina
5: Estadio Centenario Montevideo Argentina
6: Estadio Centenario Montevideo Argentina
Home Team Goals Away Team Goals Away Team Name
1: 3 1 Chile
2: 3 1 Chile
3: 3 1 Chile
4: 3 1 Chile
5: 3 1 Chile
6: 3 1 Chile
Win conditions Attendance Half-time Home Goals
1: 41459 2
2: 41459 2
3: 41459 2
4: 41459 2
5: 41459 2
6: 41459 2
Half-time Away Goals Referee
1: 1 LANGENUS Jean (BEL)
2: 1 LANGENUS Jean (BEL)
3: 1 LANGENUS Jean (BEL)
4: 1 LANGENUS Jean (BEL)
5: 1 LANGENUS Jean (BEL)
6: 1 LANGENUS Jean (BEL)
Assistant 1 Assistant 2
1: CRISTOPHE Henry (BEL) SAUCEDO Ulises (BOL)
2: CRISTOPHE Henry (BEL) SAUCEDO Ulises (BOL)
3: CRISTOPHE Henry (BEL) SAUCEDO Ulises (BOL)
4: CRISTOPHE Henry (BEL) SAUCEDO Ulises (BOL)
5: CRISTOPHE Henry (BEL) SAUCEDO Ulises (BOL)
6: CRISTOPHE Henry (BEL) SAUCEDO Ulises (BOL)
Home Team Initials Away Team Initials Team Initials
1: ARG CHI ARG
2: ARG CHI CHI
3: ARG CHI ARG
4: ARG CHI CHI
5: ARG CHI ARG
6: ARG CHI CHI
Coach Name Line-up Shirt Number
1: OLAZAR Francisco (ARG) S 0
2: ORTH Gyorgy (HUN) S 0
3: OLAZAR Francisco (ARG) S 0
4: ORTH Gyorgy (HUN) S 0
5: OLAZAR Francisco (ARG) S 0
6: ORTH Gyorgy (HUN) S 0
Player Name Position Event
1: Angel BOSSIO GK
2: Roberto CORTES GK
3: Francisco VARALLO
4: Victor MORALES
5: Jose DELLA TORRE
6: Guillermo SAAVEDRA
# 取出阿根廷隊、先發各隊長與勝場得分的關係,勝場分數2分以上的角度觀察
link <- allData %>%
filter(.$'Home Team Name'=="Argentina") %>%
filter(.$'Home Team Goals'>=1 & .$`Line-up`=="S" & .$Position=="C"
& .$`Team Initials`=="ARG") %>%
select('Player Name', 'Home Team Goals')
link
Player Name Home Team Goals
1 Manuel FERREIRA 3
2 Manuel FERREIRA 1
3 Manuel FERREIRA 6
4 Pedro DELLACHA 1
5 Pedro DELLACHA 3
6 Ruben NAVARRO 1
7 Antonio RATTIN 2
8 Antonio RATTIN 2
9 Roberto PERFUMO 4
10 Roberto PERFUMO 1
11 Miguel BRINDISI 1
12 Enrique WOLFF 1
13 Daniel PASSARELLA 2
14 Daniel PASSARELLA 2
15 Daniel PASSARELLA 6
16 Daniel PASSARELLA 2
17 Daniel PASSARELLA 2
18 Daniel PASSARELLA 4
19 Daniel PASSARELLA 1
20 Diego MARADONA 2
21 Diego MARADONA 3
22 Diego MARADONA 1
23 Diego MARADONA 1
24 Diego MARADONA 2
25 Diego MARADONA 4
26 Diego MARADONA 2
27 Daniel PASSARELLA 3
28 Diego MARADONA 2
29 Diego SIMEONE 1
30 Diego SIMEONE 5
31 Gabriel BATISTUTA 1
32 Diego SIMEONE 2
33 Diego MARADONA 3
34 Diego MARADONA 2
35 MASCHERANO 3
36 MASCHERANO 4
37 MASCHERANO 1
38 MESSI 1
39 MESSI 2
40 MESSI 1
41 MESSI 1
42 MESSI 1
43 MESSI 1
44 MESSI 1
45 MESSI 1
46 MESSI 1
47 MESSI 1
48 VERON 1
49 SORIN 2
50 SORIN 6
51 SORIN 2
# 建立網路關係
FIFANetwork <- graph_from_data_frame(d=link, directed=F)
FIFANetwork
IGRAPH 12143b8 UN-- 21 51 --
+ attr: name (v/c)
+ edges from 12143b8 (vertex names):
[1] Manuel FERREIRA --3 Manuel FERREIRA --1
[3] Manuel FERREIRA --6 Pedro DELLACHA --1
[5] Pedro DELLACHA --3 Ruben NAVARRO --1
[7] Antonio RATTIN --2 Antonio RATTIN --2
[9] Roberto PERFUMO --4 Roberto PERFUMO --1
[11] Miguel BRINDISI --1 Enrique WOLFF --1
[13] Daniel PASSARELLA--2 Daniel PASSARELLA--2
[15] Daniel PASSARELLA--6 Daniel PASSARELLA--2
+ ... omitted several edges
#畫出網路圖
set.seed(777)
plot(FIFANetwork)
#由圖中可以看出到2014為止勝場得分幅度最大的是
#Daniel PASSARELLA及MARADONA
#而MESSI當隊長時平均勝場得分是1-2分,可能是因為有名的關係,
#他當隊長,敵隊比較謹慎,也有可能正直青黃交接期隊友素質參差不齊
set.seed(777)
# 接著我們分析我們比較關注的角色MESSI跟MARADONA,上顏色的
#V(FIFANetwork)$color <- ifelse(V(FIFANetwork)$type=="poster", "gold", "lightblue")
#V(FIFANetwork)$color<-
# ifelse(V(FIFANetwork)$'Player Name'=="MESSI","red","lightblue")
V(FIFANetwork)$color="lightblue"
V(FIFANetwork)["MESSI"]$color="red"
V(FIFANetwork)["Diego MARADONA"]$color="gold"
#V(FIFANetwork)[c("MESSI")]$color="lightblue"
plot(FIFANetwork )
set.seed(777)
# 顯示有超過4個關聯,也就是當過四次隊長以上的資料顯示出來
labels <- degree(FIFANetwork)
V(FIFANetwork)$label <- names(labels)
plot(FIFANetwork, vertex.size=15, edge.arrow.size=.2,
vertex.label=ifelse(degree(FIFANetwork) > 4, V(FIFANetwork)$label, NA), vertex.label.ces=.5)
#從圖中可以看出 MESSI、MARADONA、PASSARELLA這三位擔任隊長期間有四次以上
接著我們找出隊長與敗場的關係
# 取出阿根廷隊、先發各隊長與敗場得分的關係,勝場0分不算,以有進球的角度觀察
link <- allData %>%
filter(.$'Home Team Name'=="Argentina") %>%
filter(.$'Away Team Goals'>=1 & .$`Line-up`=="S" & .$Position=="C"
& .$`Team Initials`=="ARG") %>%
select('Player Name', 'Away Team Goals')
link
Player Name Away Team Goals
1 Manuel FERREIRA 1
2 Manuel FERREIRA 1
3 Pedro DELLACHA 3
4 Pedro DELLACHA 1
5 Antonio RATTIN 1
6 Roberto PERFUMO 1
7 Roberto PERFUMO 1
8 Miguel BRINDISI 2
9 Enrique WOLFF 1
10 Daniel PASSARELLA 1
11 Daniel PASSARELLA 1
12 Daniel PASSARELLA 1
13 Daniel PASSARELLA 1
14 Daniel PASSARELLA 3
15 Diego MARADONA 1
16 Diego MARADONA 1
17 Diego MARADONA 1
18 Diego MARADONA 1
19 Oscar RUGGERI 2
20 Daniel PASSARELLA 1
21 Diego MARADONA 1
22 Diego SIMEONE 2
23 Diego MARADONA 2
24 MASCHERANO 1
25 MASCHERANO 4
26 MASCHERANO 1
27 MESSI 1
28 VERON 1
29 SORIN 1
30 SORIN 1
#畫出網路圖
set.seed(999)
# 建立網路關係
FIFANetwork <- graph_from_data_frame(d=link, directed=F)
V(FIFANetwork)$color="lightblue"
V(FIFANetwork)["MESSI"]$color="red"
V(FIFANetwork)["Diego MARADONA"]$color="gold"
plot(FIFANetwork)
#由圖中可以看出MASHERANO、DELLACHA、PASSARELLA這些隊長可能是運氣比較不好
#以高分落敗#而我們關心的馬拉杜納跟梅西大部分是以1-2分落敗
接著我們找勝敗雙方球員的關係 取出跟阿根廷隊,交戰的隊伍成員資料
# 取出跟阿根廷隊係,交戰的隊伍成員資料
enemy_team <- allData %>%
filter( (.$'Home Team Name'=="Argentina"|.$'Away Team Name'=="Argentina")
& .$`Team Initials`!="ARG") %>%
mutate(win=ifelse(.$'Home Team Name'=="Argentina",1,0)) %>%
mutate(lose=ifelse(.$'Home Team Name'!="Argentina",1,0)) %>%
select(ename='Player Name', loseg='Away Team Goals', wing='Home Team Goals',
MatchID,RoundID ,oteam=`Team Initials`,win,lose)
head(enemy_team)
ename loseg wing MatchID RoundID oteam win
1 Roberto CORTES 1 3 1084 201 CHI 1
2 Victor MORALES 1 3 1084 201 CHI 1
3 Guillermo SAAVEDRA 1 3 1084 201 CHI 1
4 Guillermo SUBIABRE 1 3 1084 201 CHI 1
5 Arturo TORRES 1 3 1084 201 CHI 1
6 Casimiro TORRES 1 3 1084 201 CHI 1
lose
1 0
2 0
3 0
4 0
5 0
6 0
*取出跟阿根廷隊資料並且統計跟敵人之間的勝場關係
# 取出跟阿根廷隊係,交戰的隊伍成員資料
agentina_team <- allData %>%
filter( .$`Team Initials`=="ARG") %>%
select(name='Player Name', MatchID,RoundID ) %>%
left_join(enemy_team) %>%
group_by(name , ename ,oteam ) %>%
summarise(losesum=sum(lose),winsum=sum(win))
Joining, by = c("MatchID", "RoundID")
head(agentina_team)
#畫出網路圖
#set.seed(999)
# 建立網路關係
agentina_network <- agentina_team %>%
filter(oteam=="GER" & winsum >=1 )%>%
select(name,winsum) %>%
graph_from_data_frame(directed=F)
Adding missing grouping variables: `ename`
#V(agentina_network)$color="lightblue"
#V(agentina_network)["MESSI"]$color="red"
#V(agentina_network)["Diego MARADONA"]$color="gold"
plot(agentina_network)
#由圖中可以看出MASHERANO、DELLACHA、PASSARELLA這些隊長可能是運氣比較不好
#以高分落敗#而我們關心的馬拉杜納跟梅西大部分是以1-2分落敗