Как найти клиентов с самыми высокими и вторыми по величине продажами?

Мне нужно узнать имена клиентов, которые совершили самую крупную и вторую по величине покупку.

Пример данных

Name   Sales
pavan  400
kumar  200
mahesh 750
rajesh 550
vasu   900

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


person Pavan Kumar    schedule 04.04.2018    source источник
comment
stackoverflow.com/questions/10296866/   -  person Night Programmer    schedule 04.04.2018


Ответы (2)


Обновленный ответ

Решение R Base

Убедитесь, что имя имеет тип Character.

Для Макса

df[which.max(df$Sales),]$Name
#[1] "vasu"

Для мин

df[which.min(df$Sales),]$Name
#[1] "kumar"

Следует отметить, что which возвращает индекс. Таким образом, в приведенном выше случае which.max возвращает индекс максимальной стоимости продажи и наоборот. Следовательно, я отправляю индекс в подмножество приложения R.

Второе место

library(dplyr)

df <- df %>% arrange(desc(Sales))
df$Name[2]
#mahesh

Вы можете продолжать изменять индекс, чтобы получить 3-й и 4-й.

person Rana Usman    schedule 04.04.2018
comment
Спасибо за ответ, как найти второе место? - person Pavan Kumar; 04.04.2018
comment
@PavanKumar Я обновил свой ответ - person Rana Usman; 04.04.2018
comment
Спасибо, я попробовал второй самый высокий запрос, он извлекает вторую строку из таблицы, но мне нужно второе место по величине продаж. - person Pavan Kumar; 04.04.2018
comment
@PavanKumar Пожалуйста, проверьте сейчас! Я сделал правку. убедитесь, что продажи равны numeric - person Rana Usman; 04.04.2018

Вы должны сначала искать свои проблемы в сообщениях.

во-вторых, попробуйте это:

library(dplyr)
test %>% 
   summarise_at(c('Name', "Sales"), max, na.rm=TRUE) %>% 
   select(Name)

вывод:

# A tibble: 1 x 1
  Name 
  <chr>
1 vasu 

вы можете заменить функцию max на min, чтобы получить желаемый результат. или укажите select(Name), чтобы получить значения бота.

person Stephan    schedule 04.04.2018
comment
Спасибо, это работает на высшем уровне. Как узнать клиента со вторым по величине значением? - person Pavan Kumar; 04.04.2018