У меня есть набор данных с несколькими категориальными переменными
data <- data_frame(
HomeTeam = c("Team1", "Team2", "Team3", "Team4", "Team2", "Team2", "Team4",
"Team3", "Team2", "Team1", "Team3", "Team2"),
AwayTeam = c("Team2", "Team1", "Team4", "Team3", "Team1", "Team4", "Team1",
"Team2", "Team3", "Team3", "Team4", "Team1"),
HomeScore = c(10, 5, 12, 18, 17, 19, 23, 17, 34, 19, 8, 3),
AwayScore = c(4, 16, 9, 19, 16, 4, 8, 21, 6, 5, 9, 17),
Venue = c("Ground1", "Ground2", "Ground3", "Ground3", "Ground1", "Ground2",
"Ground1", "Ground3", "Ground2", "Ground3", "Ground4", "Ground2"))
Я в основном хочу суммировать "HomeTeam" и "AwayTeam" путем подсчета в новую таблицу, как показано ниже
HomeTeam NumberOfGamesHome NumberOfGamesaWAY
<chr> <int> <int>
1 Team1 2 4
2 Team2 5 2
3 Team3 3 3
4 Team4 2 3
Мой текущий подход требует две сгруппированные строки кода, а затем объединение таблиц
HomeTeamCount <- data %>%
group_by(HomeTeam) %>%
summarise(NumberOfGamesHome = n())
AwayTeamCount <- data %>%
group_by(AwayTeam) %>%
summarise(NumberOfGamesAway = n())
Desired <- left_join(HomeTeamCount, AwayTeamCount,
by = c("HomeTeam" = "AwayTeam"))
В моем фактическом наборе данных у меня есть большое количество категориальных переменных, и следование приведенному выше подходу кажетсятрудоемкий и неэффективный
Есть ли способ с помощью dplyr для group_by нескольких категориальных переменных получить желаемый результат?Или, возможно, data.table?
Я консультировался с несколькими другими вопросами, такими как здесь и здесь , но не смог найти ответ.