Объединение нескольких операций в R с использованием DPLYR - PullRequest
0 голосов
/ 10 апреля 2019

Я пытаюсь использовать DPLYR для извлечения и суммирования данных. Я написал ниже, и это работает, но я хотел бы объединить все это в одно утверждение. Возможно ли это?

создание наборов данных

set.seed(1)
dbo_games <- data.frame(
  name = sample(c("Team1","Team2","Team3","Team4","Team5","Team6","Team7","Team8","Team9","Team10")),
  total_games = sample(1:10)

)

set.seed(1)
dbo_wins <- data.frame(
  name = sample(c("Team1","Team2","Team3","Team4","Team5","Team6","Team7","Team8","Team9","Team10")),
  tota_wins = sample(c("yes", "no"), 10, replace = TRUE)
)
total_games <- con %>% tbl("dbo_games")
total_wins <- con %>% tbl("dbo_wins")

total<- total_games %>% filter(games > 12) %>%
  group_by(NAME) %>%
  summarise(total_games = n_distinct(game_id)) %>% collect()

wins <- total_wins %>% filter( win == 'Y') %>%
  group_by(NAME) %>%
  summarise(total_wins = n_distinct(game_id)) %>% collect()

perc_win <- total %>% left_join(wins) %>%
  mutate(pct_won = total_wins/total_games)

Этот код работает, но я полагаю, что существует более лаконичный способ написания кода для достижения тех же результатов. Есть мысли?

1 Ответ

1 голос
/ 10 апреля 2019

Было бы проще решить эту проблему, если бы вы поделились примерами данных и почему вы делаете то, что делаете.

Однако вы все равно можете связать их вместе, как показано ниже:

total_games %>%
  filter(games > 12) %>%
  group_by(NAME) %>%
  summarise(total_games = n_distinct(game_id)) %>%
  left_join(total_wins %>% filter( win == 'Y') %>%
              group_by(NAME) %>%
              summarise(total_wins = n_distinct(game_id))) %>%
  mutate(pct_won = total_wins/total_games)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...