мои извинения, если это дубликат. это похоже на вопрос, что SO давно бы ответил, но я довольно много искал и не мог найти ничего, что конкретно отвечало бы на это. есть много связанных вопросов, которые могут быть использованы для ответа на это, но я решил, что на него должен быть дан ответ официально., как найти верхние значения N по группам или внутри категории (по группам) в R data.frame
это в ответ на this question asked on the r-help mailing list.
here are lots of examples о том, как это сделать с помощью sql
, поэтому я предполагаю, что это легко преобразовать эти знания по сравнению с использованием R sqldf
пакета .. но есть несколько способов сделать это с помощью R, и я хотел, чтобы проверить, если другие имели идеи.
Основной вопрос: используя пример mtcars
data.frame, как кто-то найдет верхнюю или нижнюю (максимальную или минимальную) N записей в указанной категории? результаты сверху или снизу N для каждой группы.
Если вы откроете R и введите mtcars
, вы получите примерную таблицу с 32 записями. при сгруппировании по колонке цилиндров cyl
- вот три первые записи для каждого отдельного значения cyl
. обратите внимание, что в этом случае связи исключены, но было бы неплохо показать несколько способов лечения связей.
mpg cyl disp hp drat wt qsec vs am gear carb ranks
Toyota Corona 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1 2.0
Volvo 142E 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2 1.0
Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1 2.0
Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4 3.0
Merc 280C 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4 1.0
Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4 1.5
Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4 1.5
Camaro Z28 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4 3.0
В случае, если нужно, чтобы выбрать различные 'k' записей в группе, этот вопрос может помочь: http://stackoverflow.com/q/33988831/1840471 –