This project aims to take a look at the logs created by the guild CGU in order to check on the players’ progress over time. The players’ damage done and damage taken while raiding is under the scope.
Only members of the CGU’s roster will be included in the analysis. That will be all characters belonging to:
1. Bertoldo.9627
2. Megakapers.2537
3. MutantFod.5602
4. Wanderer.6905
5. Frusco.1830
6. fmshadowstep.6195
7. woltos.8735
8. Deoceus.6175
9. liquidus.9543
10. panranadox.6390
11. Flemming.6245
12. Leeal.7021
13. Melkor Manson.8320
14. WulfiKant.7364
#excluding "pugs"
ffdc<- ffd %>%
filter(Account %in% c("Bertoldo.9627", "Megakapers.2537", "MutantFod.5602", "Wanderer.6905", "Frusco.1830", "fmshadowstep.6195", "woltos.8735", "Deoceus.6175", "liquidus.9543", "panranadox.6390", "Flemming.6245", "Leeal.7021", "Melkor Manson.8320", "WulfiKant.7364"))
ffdc %>%
group_by(Account, Name) %>%
summarise(encounters_participated=n()) %>%
arrange(desc(encounters_participated))
## # A tibble: 36 x 3
## # Groups: Account [14]
## Account Name encounters_participated
## <chr> <chr> <int>
## 1 MutantFod.5602 "Detaz Na\xeflo" 129
## 2 Wanderer.6905 Idogi 121
## 3 Megakapers.2537 Liazz The Provoker 118
## 4 fmshadowstep.6195 Afkshadowstep 101
## 5 Deoceus.6175 Deontiks 96
## 6 Bertoldo.9627 Petra Harkin 81
## 7 Frusco.1830 Idhion 77
## 8 liquidus.9543 His Majesty Elderon 76
## 9 woltos.8735 "Brynhild\xeb" 70
## 10 panranadox.6390 I Nicki Mirage I 44
## # ... with 26 more rows
As a rule of thumb, a fight needs to be over 60 seconds long in order for it’s log to be accurately representing a players potential. This is done, because in the first few seconds of a figth all conditions are ideal. Therefore if a log ends during this time and its results are then compared with those of logs whose fights are longer than 60 seconds, would make the rest of the logs appear to be worse. Hence all encouters whose duration is less than 60 seconds will be excluded. Also, failed attempts aren’t needed in the analysis, and will be excluded as well.
#turning duration to only seconds
#separate mins and secs
ffdc_d <- ffdc %>%
separate(Duration, c( "mins", "secs"), sep=" ", remove=TRUE)
#remove m & s
ffdc_d$mins <- ffdc_d$mins %>%
str_replace("m", "")
ffdc_d$secs <- ffdc_d$secs %>%
str_replace("s", "")
#creating new column with duration calculated in secs
ffdc_d <- ffdc_d %>%
mutate(mins_to_secs=as.numeric(as.character(mins))*60, duration_in_secs= mins_to_secs + as.numeric(as.character(secs)))
#filtering rows
kills_over60s <- ffdc_d %>%
filter(duration_in_secs>60, Success == "True")
In order for the data to be manipulated some changes need to be made:
1. The names of the variables contain spaces which will be replaces by “_“.
2. The variable”Name" contains some observations written with characters from foreign languages, which will be replaced as well.
3. The “Time_Start” variable will be made into 3 variables “Date”, “Time” and “UTC”.
#replacing " " with "_"
names(kills_over60s) <- gsub(" ", "_", names(kills_over60s))
#replacing special characters
ko60 <- kills_over60s
ko60$Name<-str_replace_all(ko60$Name, "[^[:alnum:]]", "_")
#changing "Time_start" from character into a date format
ko60d <- ko60 %>%
separate(Time_Start, c( "Date", "Time", "UTC"), sep=" ", remove=TRUE)
ko60d$Date <- as.Date(ko60d$Date, tryFormats = c("%Y-%m-%d", "%Y/%m/%d"))
As we can see below there is fluctuation on the guilds damage done in most boss kills.
#all dps per boss per date
ko60t<- ko60d %>%
group_by(Boss, Date) %>%
mutate(total_dps_pbd=sum(All_DPS))
ggplot(ko60t, aes(Date, total_dps_pbd)) +
geom_point() +
facet_wrap(~Boss) +
theme(axis.text.x = element_text(angle = 90))
ko60t %>%
group_by(Account) %>%
summarise(resurrected=sum(Resurrects)) %>%
arrange(desc(resurrected))
## # A tibble: 14 x 2
## Account resurrected
## <chr> <dbl>
## 1 Megakapers.2537 259
## 2 woltos.8735 236
## 3 Melkor Manson.8320 96
## 4 Wanderer.6905 77
## 5 MutantFod.5602 62
## 6 liquidus.9543 52
## 7 fmshadowstep.6195 51
## 8 Bertoldo.9627 45
## 9 Deoceus.6175 43
## 10 Flemming.6245 41
## 11 panranadox.6390 28
## 12 Frusco.1830 18
## 13 Leeal.7021 3
## 14 WulfiKant.7364 1
From this point on, summary statistcs along with graphs are given for each boss. As the role(tank/healer/dps) of the player during the raid is not always the same, some sudden peaks are to be expected. Hence, except for damage done/taken it is also interesting to see the players’ boxplots and keep an eye out for potential outliers.
ko60cairn<- ko60d %>%
filter(Boss =="Cairn the Indomitable") %>%
group_by(Name) %>%
mutate(encounters=n()) %>%
filter(encounters>=2)
ko60cairn %>%
filter(Boss =="Cairn the Indomitable") %>%
group_by(Name) %>%
summarise(encounters=n(), median_dps=median(All_DPS), mean_dps=mean(All_DPS), sd_dps=sd(All_DPS)) %>%
arrange(desc(encounters))
## # A tibble: 14 x 5
## Name encounters median_dps mean_dps sd_dps
## <chr> <int> <dbl> <dbl> <dbl>
## 1 Detaz_Na_lo 8 1708. 5861. 8302.
## 2 Idogi 7 10557 9082. 3990.
## 3 Afkshadowstep 6 16291 15139. 5074.
## 4 His_Majesty_Elderon 6 9144. 7679. 3736.
## 5 Liazz_The_Provoker 6 1180. 1275 474.
## 6 Petra_Harkin 6 3078 2796 1039.
## 7 Brynh_ld_ 5 2282 2510. 392.
## 8 Cnarr_Fizzleblip 5 5334 5944. 1692.
## 9 Sinthoras_Lecter 5 24908 22663. 4984.
## 10 Idhion 3 13537 11039. 4326.
## 11 Anityr_Svoldjann 2 4068. 4068. 981.
## 12 Deontiks 2 3026. 3026. 986.
## 13 Veanna_Remi 2 15582 15582 2014.
## 14 Wulfiekant 2 8912. 8912. 12603.
ggplot(ko60cairn, aes(Date)) +
geom_line(aes(y=All_DMG, color="All_DMG")) +
geom_line(aes(y=DMG_Taken, color="DMG_Taken")) +
labs(color="Damage") +
scale_colour_manual(values=c(All_DMG="green",DMG_Taken="red"))+
facet_wrap(~Name, nrow = 2) +
theme(axis.text.x = element_text(angle = 90))
ggplot(ko60cairn, aes(Name, All_DPS, col=Account)) +
geom_boxplot() +
theme(axis.text.x = element_text(angle = 90))
ko60gor<- ko60d %>%
filter(Boss =="Gorseval the Multifarious") %>%
group_by(Name) %>%
mutate(encounters=n()) %>%
filter(encounters>=2)
ko60gor %>%
filter(Boss =="Gorseval the Multifarious") %>%
group_by(Name) %>%
summarise(encounters=n(), median_dps=median(All_DPS), mean_dps=mean(All_DPS), sd_dps=sd(All_DPS)) %>%
arrange(desc(encounters))
## # A tibble: 18 x 5
## Name encounters median_dps mean_dps sd_dps
## <chr> <int> <dbl> <dbl> <dbl>
## 1 Detaz_Na_lo 10 1724. 1901. 439.
## 2 Afkshadowstep 9 16550 16182. 2882.
## 3 Idogi 9 8902 10121. 2782.
## 4 Liazz_The_Provoker 9 1659 1874. 531.
## 5 Deontiks 6 4210. 4057. 617.
## 6 Petra_Harkin 6 6204. 8556. 4531.
## 7 Brynhild_ 5 5001 5119 198.
## 8 Cael_Remi 5 12603 12695. 187.
## 9 His_Majesty_Elderon 5 10508 10183. 1998.
## 10 Cnarr_Fizzleblip 4 13738. 13764. 4218.
## 11 Brynh_ld_ 3 6028 6092. 478.
## 12 Kettlet 3 10113 10413. 520.
## 13 Nickarsus 3 11465 12761. 2245.
## 14 I_Nicki_Mirage_I 2 5466 5466 0
## 15 Idhion 2 18422. 18422. 1894.
## 16 Imperator_Elderon 2 9519 9519 0
## 17 Ramsay_Lannister 2 23620 23620 5011.
## 18 Veanna_Remi 2 21458 21458 959.
ggplot(ko60gor, aes(Date)) +
geom_line(aes(y=All_DMG, color="All_DMG")) +
geom_line(aes(y=DMG_Taken, color="DMG_Taken")) +
labs(color="Damage") +
scale_colour_manual(values=c(All_DMG="green",DMG_Taken="red"))+
facet_wrap(~Name, nrow = 2) +
scale_y_continuous(labels = scales::comma) +
theme(axis.text.x = element_text(angle = 90))
ggplot(ko60gor, aes(Name, All_DPS, col=Account)) +
geom_boxplot() +
theme(axis.text.x = element_text(angle = 90))
ko60kc<- ko60d %>%
filter(Boss =="Keep Construct") %>%
group_by(Name) %>%
mutate(encounters=n()) %>%
filter(encounters>=2)
ko60kc %>%
filter(Boss =="Keep Construct") %>%
group_by(Name) %>%
summarise(encounters=n(), median_dps=median(All_DPS), mean_dps=mean(All_DPS), sd_dps=sd(All_DPS)) %>%
arrange(desc(encounters))
## # A tibble: 8 x 5
## Name encounters median_dps mean_dps sd_dps
## <chr> <int> <dbl> <dbl> <dbl>
## 1 Afkshadowstep 2 22368. 22368. 325.
## 2 Brynh_ld_ 2 4060 4060 67.9
## 3 Cnarr_Fizzleblip 2 17124. 17124. 397.
## 4 Detaz_Na_lo 2 1992. 1992. 231.
## 5 His_Majesty_Elderon 2 6666. 6666. 153.
## 6 Idogi 2 16338 16338 2855.
## 7 Liazz_The_Provoker 2 2126. 2126. 325.
## 8 Petra_Harkin 2 4664 4664 741.
ggplot(ko60kc, aes(Date)) +
geom_line(aes(y=All_DMG, color="All_DMG")) +
geom_line(aes(y=DMG_Taken, color="DMG_Taken")) +
labs(color="Damage") +
scale_colour_manual(values=c(All_DMG="green",DMG_Taken="red"))+
facet_wrap(~Name, nrow = 2) +
theme(axis.text.x = element_text(angle = 90))
ggplot(ko60kc, aes(Name, All_DPS, col=Account)) +
geom_boxplot() +
theme(axis.text.x = element_text(angle = 90))
ko60mo<- ko60d %>%
filter(Boss =="Mursaat Overseer") %>%
group_by(Name) %>%
mutate(encounters=n()) %>%
filter(encounters>=2)
ko60mo %>%
filter(Boss =="Mursaat Overseer") %>%
group_by(Name) %>%
summarise(encounters=n(), median_dps=median(All_DPS), mean_dps=mean(All_DPS), sd_dps=sd(All_DPS)) %>%
arrange(desc(encounters))
## # A tibble: 12 x 5
## Name encounters median_dps mean_dps sd_dps
## <chr> <int> <dbl> <dbl> <dbl>
## 1 Detaz_Na_lo 6 2422. 2311. 428.
## 2 Idogi 6 20040. 19385. 4180.
## 3 Afkshadowstep 5 28129 26752. 4047.
## 4 Liazz_The_Provoker 5 2042 2200 464.
## 5 Brynh_ld_ 4 7670. 7274. 1305.
## 6 Cnarr_Fizzleblip 4 16392 15785 3486.
## 7 Ealendril_The_Dark 4 25344. 24816. 2170.
## 8 His_Majesty_Elderon 4 16602. 16698. 630.
## 9 Petra_Harkin 4 6836 6852. 304.
## 10 Deontiks 2 3501 3501 2633.
## 11 Idhion 2 24690. 24690. 1917.
## 12 Veanna_Remi 2 26188. 26188. 5815.
ggplot(ko60mo, aes(Date)) +
geom_line(aes(y=All_DMG, color="All_DMG")) +
geom_line(aes(y=DMG_Taken, color="DMG_Taken")) +
labs(color="Damage") +
scale_colour_manual(values=c(All_DMG="green",DMG_Taken="red"))+
facet_wrap(~Name, nrow = 2) +
theme(axis.text.x = element_text(angle = 90))
ggplot(ko60mo, aes(Name, All_DPS, col=Account)) +
geom_boxplot() +
theme(axis.text.x = element_text(angle = 90))
ko60sab<- ko60d %>%
filter(Boss =="Sabetha the Saboteur") %>%
group_by(Name) %>%
mutate(encounters=n()) %>%
filter(encounters>=2)
ko60sab %>%
filter(Boss =="Sabetha the Saboteur") %>%
group_by(Name) %>%
summarise(encounters=n(), median_dps=median(All_DPS), mean_dps=mean(All_DPS), sd_dps=sd(All_DPS)) %>%
arrange(desc(encounters))
## # A tibble: 13 x 5
## Name encounters median_dps mean_dps sd_dps
## <chr> <int> <dbl> <dbl> <dbl>
## 1 Detaz_Na_lo 7 2705 8493. 9973.
## 2 His_Majesty_Elderon 6 13072. 13273. 2741.
## 3 Afkshadowstep 5 19440 19000 5134.
## 4 Cnarr_Fizzleblip 5 14578 14681. 4796.
## 5 Idogi 5 12199 11336. 3775.
## 6 Liazz_The_Provoker 5 1542 1842 604.
## 7 Petra_Harkin 5 7154 6534. 1001.
## 8 Brynh_ld_ 3 7939 7612. 887.
## 9 Idhion 3 25691 24465. 3813.
## 10 Deontiks 2 5037 5037 806.
## 11 Ramsay_Lannister 2 27432 27432 5210.
## 12 Veanna_Remi 2 27610. 27610. 1418.
## 13 Wulfiekant 2 6837 6837 4096.
ggplot(ko60sab, aes(Date)) +
geom_line(aes(y=All_DMG, color="All_DMG")) +
geom_line(aes(y=DMG_Taken, color="DMG_Taken")) +
labs(color="Damage") +
scale_colour_manual(values=c(All_DMG="green",DMG_Taken="red"))+
facet_wrap(~Name, nrow = 2) +
theme(axis.text.x = element_text(angle = 90))
ggplot(ko60sab, aes(Name, All_DPS, col=Account)) +
geom_boxplot() +
theme(axis.text.x = element_text(angle = 90))
ko60sam<- ko60d %>%
filter(Boss =="Samarog") %>%
group_by(Name) %>%
mutate(encounters=n()) %>%
filter(encounters>=2)
ko60sam %>%
filter(Boss =="Samarog") %>%
group_by(Name) %>%
summarise(encounters=n(), median_dps=median(All_DPS), mean_dps=mean(All_DPS), sd_dps=sd(All_DPS)) %>%
arrange(desc(encounters))
## # A tibble: 13 x 5
## Name encounters median_dps mean_dps sd_dps
## <chr> <int> <dbl> <dbl> <dbl>
## 1 Detaz_Na_lo 6 1540. 1496. 104.
## 2 Idogi 6 10435 9702. 3352.
## 3 Cnarr_Fizzleblip 5 11537 10185. 2726.
## 4 Liazz_The_Provoker 5 1735 1841 496.
## 5 Afkshadowstep 4 14984. 14947 928.
## 6 Brynh_ld_ 4 3837 3166 1491.
## 7 Deontiks 4 3091 3186 464.
## 8 Cael_Remi 3 17162 14261. 5297.
## 9 Nickarsus 3 11659 11633. 702.
## 10 His_Majesty_Elderon 2 3794. 3794. 5274.
## 11 I_Nicki_Mirage_I 2 9691 9691 2367.
## 12 Petra_Harkin 2 4146. 4146. 33.2
## 13 Ramsay_Manson 2 15845 15845 62.2
ggplot(ko60sam, aes(Date)) +
geom_line(aes(y=All_DMG, color="All_DMG")) +
geom_line(aes(y=DMG_Taken, color="DMG_Taken")) +
labs(color="Damage") +
scale_colour_manual(values=c(All_DMG="green",DMG_Taken="red"))+
facet_wrap(~Name, nrow = 2) +
theme(axis.text.x = element_text(angle = 90))
ggplot(ko60sam, aes(Name, All_DPS, col=Account)) +
geom_boxplot() +
theme(axis.text.x = element_text(angle = 90))
ko60slo<- ko60d %>%
filter(Boss =="Slothasor") %>%
group_by(Name) %>%
mutate(encounters=n()) %>%
filter(encounters>=2)
ko60slo %>%
filter(Boss =="Slothasor") %>%
group_by(Name) %>%
summarise(encounters=n(), median_dps=median(All_DPS), mean_dps=mean(All_DPS), sd_dps=sd(All_DPS)) %>%
arrange(desc(encounters))
## # A tibble: 9 x 5
## Name encounters median_dps mean_dps sd_dps
## <chr> <int> <dbl> <dbl> <dbl>
## 1 Afkshadowstep 3 13599 13853 860.
## 2 Brynh_ld_ 3 4567 4222 1056.
## 3 Cnarr_Fizzleblip 3 7554 7529. 3567.
## 4 Detaz_Na_lo 3 1380 1467. 324.
## 5 Idogi 3 10205 8527 3472.
## 6 Liazz_The_Provoker 3 2006 2195 510.
## 7 His_Majesty_Elderon 2 7147 7147 652.
## 8 Petra_Harkin 2 5344. 5344. 547.
## 9 Ramsay_Manson 2 18168. 18168. 2979.
ggplot(ko60slo, aes(Date)) +
geom_line(aes(y=All_DMG, color="All_DMG")) +
geom_line(aes(y=DMG_Taken, color="DMG_Taken")) +
labs(color="Damage") +
scale_colour_manual(values=c(All_DMG="green",DMG_Taken="red"))+
facet_wrap(~Name, nrow = 2) +
theme(axis.text.x = element_text(angle = 90))
ggplot(ko60slo, aes(Name, All_DPS, col=Account)) +
geom_boxplot() +
theme(axis.text.x = element_text(angle = 90))
ko60vg<- ko60d %>%
filter(Boss =="Vale Guardian") %>%
group_by(Name) %>%
mutate(encounters=n()) %>%
filter(encounters>=2)
ko60vg %>%
filter(Boss =="Vale Guardian") %>%
group_by(Name) %>%
summarise(encounters=n(), median_dps=median(All_DPS), mean_dps=mean(All_DPS), sd_dps=sd(All_DPS)) %>%
arrange(desc(encounters))
## # A tibble: 19 x 5
## Name encounters median_dps mean_dps sd_dps
## <chr> <int> <dbl> <dbl> <dbl>
## 1 Detaz_Na_lo 15 1755 2738. 3752.
## 2 Idogi 12 6008 7272. 3956.
## 3 Liazz_The_Provoker 12 1737 1749 428.
## 4 Afkshadowstep 11 14849 16288. 3526.
## 5 His_Majesty_Elderon 11 8956 9203. 1724.
## 6 Petra_Harkin 11 5204 8995. 6005.
## 7 Idhion 10 16236 16980. 2029.
## 8 Deontiks 8 2841 2790. 866.
## 9 Brynhild_ 6 4254 4374. 551.
## 10 Cnarr_Fizzleblip 5 12478 10704. 4468.
## 11 Brynh_ld_ 4 5803 8508. 6908.
## 12 I_Nicki_Mirage_I 4 10278 10278 56.6
## 13 Ramsay_Lannister 4 24528. 25061 2576.
## 14 Veanna_Remi 3 18221 17949. 530.
## 15 Wulfiekant 3 13306 13619 991.
## 16 Anityr_Svoldjann 2 3199 3199 693.
## 17 Beast_Tamer_Braun 2 15513 15513 0
## 18 Hellga_Sinnett 2 2543 2543 595.
## 19 Kettlet 2 8753 8753 0
ggplot(ko60vg, aes(Date)) +
geom_line(aes(y=All_DMG, color="All_DMG")) +
geom_line(aes(y=DMG_Taken, color="DMG_Taken")) +
labs(color="Damage") +
scale_colour_manual(values=c(All_DMG="green",DMG_Taken="red"))+
facet_wrap(~Name, nrow = 2) +
theme(axis.text.x = element_text(angle = 90))
ggplot(ko60vg, aes(Name, All_DPS, col=Account)) +
geom_boxplot() +
theme(axis.text.x = element_text(angle = 90))