Выберите уникальные значения в кадре данных на основе отсортированного значения - PullRequest
0 голосов
/ 23 декабря 2018

Кто-нибудь выбирал уникальные значения из фрейма данных на основе наибольшего значения второго значения?

Пример:

name value
cheese 15
pepperoni 12
cheese 9
tomato 4
cheese 3
tomato 2

Лучшее, что я придумал - я уверен, что естьлучший способ - это отсортировать df по убыванию значения, извлечь df $ name, выполнить для него уникальную функцию (), а затем выполнить левое соединение с dplyr.

Идеальный результат такой:

name value
cheese 15
pepperoni 12
tomato 4

Заранее спасибо!

1 Ответ

0 голосов
/ 23 декабря 2018

Видя ожидаемый результат, для каждого name вы ищете строку с наибольшим номером.Одним из способов решения этой задачи является следующий.

library(dplyr)
group_by(mydf, name) %>%
slice(which.max(value))

# A tibble: 3 x 2
# Groups:   name [3]
#  name      value
#  <fct>     <int>
#1 cheese       15
#2 pepperoni    12
#3 tomato        4

ДАННЫЕ

mydf <- structure(list(name = structure(c(1L, 2L, 1L, 3L, 1L, 3L), .Label = c("cheese", 
"pepperoni", "tomato"), class = "factor"), value = c(15L, 12L, 
9L, 4L, 3L, 2L)), class = "data.frame", row.names = c(NA, -6L
))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...