R, dplyr Заказать группы записей - PullRequest
0 голосов
/ 26 апреля 2018

Рассмотрим следующие примеры

PSE YEAR    ID
1   2014    3
3   2007    1
3   2004    4
3   2002    4
1   2013    3
3   2006    1
2   2016    2
2   2017    2
1   2015    3
3   2003    4

Edit: Неправильный Если я использую dplyr arrange(PSE, YEAR,ID), я получаю

Исправлено: Если я использую dplyr arrange(PSE,ID, YEAR), я получаю

PSE YEAR    ID
1   2013    3
1   2014    3
1   2015    3
2   2016    2
2   2017    2
3   2006    1 
3   2007    1
3   2002    4
3   2003    4
3   2004    4

Что я хочу, это

PSE YEAR    ID
1   2013    3
1   2014    3
1   2015    3
2   2016    2
2   2017    2
3   2002    4
3   2003    4
3   2004    4
3   2006    1
3   2007    1

Возможно, что-то простое, но почему-то я не могу правильно отсортировать это.

Ммм, как-то сейчас это работает, но не на моих исходных данных. Вот небольшая выборка данных, где возникает ошибка.

structure(list(PSE = c(11280282, 11280282, 11280282, 11280282, 
11630646, 11630646, 11630646, 11630646, 11630646, 11630646, 11630646, 
11630646, 11630646, 12106438, 12106438, 12106438, 12106438, 12106438, 
12106438, 12106438, 12106438, 12106438, 12106438, 12106438, 12106438, 
12106438, 12106438, 12106438, 12106438, 12106438, 12106438, 12106438, 
12106438, 12106438, 12106438, 12106438, 12106438, 12106438, 12106438, 
12106438, 12106438, 12106438, 12335813, 12335813, 12335813, 12335813, 
12475347, 12475347, 12475347, 12475347, 12475347, 12475347, 12475347, 
12475347, 12475347, 12475347, 12475347, 12475347, 12475347, 12475347, 
12475347, 12475347, 12475347, 12475347, 12475347, 12475347, 12475347, 
12475347, 12912674, 12912674, 12912674, 12912674), YEAR = c(20152, 
20161, 20162, 20171, 20101, 20102, 20111, 20112, 20121, 20122, 
20131, 20132, 20141, 20042, 20042, 20051, 20051, 20052, 20052, 
20061, 20061, 20062, 20062, 20071, 20071, 20072, 20072, 20081, 
20081, 20082, 20082, 20091, 20092, 20101, 20101, 20101, 20102, 
20102, 20102, 20111, 20111, 20111, 20152, 20171, 20171, 20171, 
20102, 20102, 20111, 20111, 20112, 20112, 20121, 20121, 20122, 
20122, 20131, 20131, 20132, 20132, 20141, 20141, 20142, 20142, 
20162, 20162, 20171, 20171, 20022, 20031, 20032, 20041), ID = c(8171, 
8171, 8171, 8171, 4801, 4801, 4801, 4801, 4801, 4801, 4801, 4801, 
4801, 1646, 1758, 1646, 1758, 1646, 1758, 1646, 1758, 1646, 1758, 
1646, 1758, -1, 3465, -1, 3465, -1, 3465, 3465, 3465, 3465, 4712, 
4770, 3465, 4712, 4770, 3465, 4712, 4770, 8217, 9236, 9237, 9238, 
4947, 4952, 4947, 4952, 5433, 5568, 5433, 5568, 5433, 5568, 5433, 
5568, 5433, 5568, 5433, 5568, 5433, 5568, 6797, 6813, 7123, 7215, 
474, 474, 474, 474)), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, -72L), .Names = c("PSE", "YEAR", "ID"))

PSE 12106438 проблематично.

Вот что я получаю:

12106438    20072   -1
12106438    20081   -1
12106438    20082   -1
12106438    20042   1646
12106438    20051   1646
12106438    20052   1646
12106438    20061   1646
12106438    20062   1646
12106438    20071   1646
12106438    20042   1758
12106438    20051   1758
12106438    20052   1758
12106438    20061   1758
12106438    20062   1758
12106438    20071   1758
12106438    20072   3465
12106438    20081   3465
12106438    20082   3465
12106438    20091   3465
12106438    20092   3465
12106438    20101   3465
12106438    20102   3465
12106438    20111   3465
12106438    20101   4712
12106438    20102   4712
12106438    20111   4712
12106438    20101   4770
12106438    20102   4770
12106438    20111   4770

То, что я хочу, это

12106438    20042   1646
12106438    20051   1646
12106438    20052   1646
12106438    20061   1646
12106438    20062   1646
12106438    20071   1646
12106438    20042   1758
12106438    20051   1758
12106438    20052   1758
12106438    20061   1758
12106438    20062   1758
12106438    20071   1758
12106438    20072   -1
12106438    20081   -1
12106438    20082   -1
12106438    20072   3465
12106438    20081   3465
12106438    20082   3465
12106438    20091   3465
12106438    20092   3465
12106438    20101   3465
12106438    20102   3465
12106438    20111   3465
12106438    20101   4712
12106438    20102   4712
12106438    20111   4712
12106438    20101   4770
12106438    20102   4770
12106438    20111   4770
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...