Как "взять с собой другую переменную" с помощью dplyr :: Summaze - PullRequest
0 голосов
/ 07 июня 2018

Я хочу получить максимальное значение в каждой комбинации условий, но также взять с собой значение другой переменной с тем же индексом.

df <- mtcars %>%
  group_by(gear,carb) %>%
  summarise(max_cyl = max(cyl))

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

Другими словами, я хочу выбирать только те автомобили с максимальным количеством цилиндров в каждой передаче x условие карбюратора, изнать пробег бензина для той же машины.

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

Другая возможность:

df2 <- (mtcars
  %>% group_by(gear,carb) 
  %>% filter(cyl==max(cyl)) 
  %>% select(cyl,mpg)
)

(или select(gear,carb,cyl,mpg) в последней строке, если вы хотите избежать сообщения «Добавление отсутствующих переменных группировки»)

Этот подход был бы удобенесли вы хотите захватить еще несколько переменных и не хотите набирать which.max().

0 голосов
/ 07 июня 2018

Я обнаружил, что функция which.max () работает для этого.

df1 <- mtcars %>%
  group_by(gear,carb) %>%
  summarise(max_cyl = max(cyl),
            mpg = mpg[which.max(cyl)])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...