Dplyr: подсчитать количество групп и преобразовать его в таблицу - PullRequest
0 голосов
/ 06 мая 2019

Набор данных доступен на Kaggle: https://www.kaggle.com/heesoo37/120-years-of-olympic-history-athletes-and-results/

Мне нужно использовать dplyr для создания объекта, который содержит для каждого комбинация Sex и Season, количество различных видов спорта в наборе данных.

Сначала я сгруппировал набор данных по полу, сезону и спорту, суммировал их, и я получил таблицу со слишком большим количеством строк с колонкой «Секс, сезон и спорт». Это неправильно. Затем я использовал n () в функции суммирования, которая вернула мне тот же результат, только с еще одним столбцом: количество людей

final_group<- group_by(dataset, Sex, Season)
final_group_1 <- summarise(final_group)

тогда я попробовал:

final_group<- group_by(dataset, Sex, Season)
final_group_1 <- summarise(final_group, n())

оба не вернули то, что я хочу.

Мне нужны только 4 строки с суммами всех видов спорта, проводимых летом или зимой для каждого пола, как показано в примере ниже:

Sex       Season        Num_sports
Male      summer           ( all sports played by males in the summer )
Male      winter           ( all sports played by males in the winter )
Female    summer           ( all sports played by females in the summer )
Female    winter           ( all sports played by females in the winter )

1 Ответ

0 голосов
/ 06 мая 2019

Без представления невозможно точно знать, как выглядят ваши данные, но что-то вроде этого должно дать вам желаемый ответ:

library(tidyverse)

dat <- read_csv("~/Desktop/athlete_events.csv")

dat %>% 
    count(Sex, Season)
#> # A tibble: 4 x 3
#>   Sex   Season      n
#>   <chr> <chr>   <int>
#> 1 F     Summer  59443
#> 2 F     Winter  15079
#> 3 M     Summer 163109
#> 4 M     Winter  33485

Если вы хотите количество уникальных видов спорта, в которых играют мужчины / женщины за каждый сезонВы можете сделать что-то вроде этого:

dat %>% 
    group_by(Sex, Season) %>% 
    summarise(num_sports_played = length(unique(Sport)))
#> # A tibble: 4 x 3
#> # Groups:   Sex [2]
#>   Sex   Season num_sports_played
#>   <chr> <chr>              <int>
#> 1 F     Summer                40
#> 2 F     Winter                14
#> 3 M     Summer                49
#> 4 M     Winter                17

Создано в 2019-05-06 с помощью пакета Представить (v0.2.1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...