Как классифицировать данные и построить график - PullRequest
0 голосов
/ 18 апреля 2020

https://www.kaggle.com/nowke9/ipldata ---- содержит набор данных.

Это исследовательский анализ данных, выполненный для двух наборов данных IPL. Я рассчитываю установить sh связь между броском, выигранным командой и победителем матча, из набора данных матчей. Когда я делю данные на победителя и проигравшего с помощью условия ifelse и строю график, я получаю вывод в виде одной гистограммы, содержащей только общее количество совпадений, и все это является частью утраченной легенды.

Вот код -

library(tidyverse)

deliveries_tbl <- read.csv("data/deliveries_updated.csv")
matches_tbl <- read.csv("data/matches_updated.csv")

matches_normal_result_tbl <- matches_tbl[matches_tbl$result == "normal",]

# Is winning toss really an adnavtage ? ----
matches_normal_result_tbl$toss_match <- ifelse(as.character(matches_normal_result_tbl$toss_winner)== 
                                                    as.character(matches_normal_result_tbl$winner), 
                                                    "Won", "Lost")

ggplot(matches_normal_result_tbl[which(!is.na(matches_normal_result_tbl$toss_match)),], aes(toss_match, fill = toss_match))+
    geom_bar()+
    xlab("Toss")+ ylab("Number of matches won")+
    ggtitle("How much of advantage is winning the toss ?")

Вывод следующий: -

Is winning the toss an advantage ?

Как разбить данные на две колонки победителя и проигравшего и получить две гистограммы? Спасибо заранее.

1 Ответ

2 голосов
/ 18 апреля 2020

Чтобы рассчитать количество выигранных матчей на основе броска, вы можете сделать:

library(dplyr)
library(ggplot2)

matches %>%
  mutate(toss_match = ifelse(toss_winner == winner, "Won", "Loss")) %>%
  count(toss_match) %>%
  ggplot() + aes(toss_match, n, fill = toss_match) + 
  geom_col() + 
  xlab("Toss")+ ylab("Number of matches won")+
  ggtitle("How much of advantage is winning the toss ?")

enter image description here

Вы можете go далее и сделать тот же анализ для лучших городов, где были сыграны матчи.

matches %>%
  mutate(toss_match = ifelse(toss_winner == winner, "Won", "Loss")) %>%
  count(city, toss_match) %>%
  group_by(city) %>%
  filter(all(n > 10)) %>%
  mutate(n = n/sum(n) * 100) %>%
  ggplot() + aes(city, n, fill = toss_match) + 
  geom_col() + 
  xlab("City")+ ylab("Percentage") + 
  ggtitle("Advantage of winning toss in each city")

enter image description here

...