Расчет процента от функции фильтра dplyr в R - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть следующие данные:

df <- tibble(
  "result" = c("win", "loss", "win", "win", "loss", "win", "win", "loss"),
  "team" = c("TBL", "NJD", "TBL", "STL", "TBL", "STL", "NJD", "STL"),
)

Таблица состоит из двух столбцов - result и team.Я хочу посчитать процент, в котором команда "выиграет" в результате.Я использовал dplyr для быстрого подсчета каждого результата: «победа» или «поражение» -

df_win <- df %>% 
  group_by(result, team) %>% 
  filter(result == "win") %>% 
  summarise(count = n())

df_loss <- df %>% 
  group_by(result, team) %>% 
  filter(result == "loss") %>%
  summarise(count = n())

Я хочу использовать mutate, чтобы создать формулу для расчета количества раз, которое командаимел «выигрыш» (и наоборот, для «проигрыша»):

df %>%
  mutate(team_win_perc = ((df_win / df_loss) * 0.1 )))

Но, очевидно, нельзя просто умножить две таблицы без последствий:

Error in mutate_impl(.data, dots) : 
  Evaluation error: non-numeric argument to binary operator.

Запрашивая как дебил Iиногда я, как мне отформатировать это?

1 Ответ

0 голосов
/ 21 февраля 2019

Производит ли это то, что вы хотите?

df %>% 
  group_by(team) %>% 
  summarise(win_pct = sum(result == "win") / n())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...