Dataframe: сортировка по убыванию не работает - PullRequest
0 голосов
/ 24 июня 2018

У меня есть датафрейм:

CityVsPrice = data.frame (Город, цена)

City      Price

New York  10000
New York  15000
New York  12000
Madison   800
Lodi      8000
Chico     9000
Redlands  200

Затем я хочу отсортировать этот список по цене, предоставив мне 3 лучших города по цене. Так что в идеале Нью-Йорк должен был появиться только один раз, затем Чико и Лоди. Может быть, еще один способ подойти к этому - взять наибольшее значение для каждого города, а затем отсортировать по убыванию и выбрать топ 3. Любой простой способ сделать это?

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

Ответы [ 3 ]

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

В базе R есть способы сделать это кратко, но здесь идет решение, которое использует data.table:

setDT(CityVsPrice)[, .(Price = max(Price)), by=City][order(-Price)][1:3]
       City Price
1: New York 15000
2:    Chico  9000
3:     Lodi  8000
0 голосов
/ 24 июня 2018

Итак, наконец-то это сработало:

Price=as.numeric(as.character(Price))

ByPrice<- data.frame(aggregate(Price ~ City, data = CityVsPrice, max))
0 голосов
/ 24 июня 2018

Tidyverse делает это очень хорошо, вам это понравится :) 1001 *

https://dplyr.tidyverse.org/

library(dplyr)
data.frame(City,Price) %>% 
  group_by(City) %>% 
  top_n(1, Price) %>% 
  ungroup() %>% 
  top_n(3, Price)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...